WCF初接触

来源:互联网 发布:南阳网络推广哪家专业 编辑:程序博客网 时间:2024/06/05 02:19

前言

      今天杰哥给大家分享了一下WCF的知识,本来想上午最后一节课的时候提前查查资料,无奈临时要开个会,就搁置了,听了这么多次技术分享,有一个比较深的感受,一定要提前查资料,要不然听着听着就蒙了,没有共鸣


WCF是什么??

全称:Windows Communication Foundation  是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows通讯开发平台。

上边是百科里的第一句话,重点应该放在Coummnication上,WCF为信息的通信提供了平台。在项目中我负责的是评教的部分,是不添加WCF的框架,因为我不需要给别的模块提供服务,我只需要基础给我提供接口,以便访问一些基础的数据,这是我对WCF最原始的理解,在暑假的时候,因为框架没有WCF的部分,所以也没有认真的研究,这次趁着杰哥的技术分享,好好的研究一下WCF到底是什么。


话不多说,先做一个简单的小DEMO 

参考(东邪孤独的WCF专栏的第一篇)


1.建立两个控制台程序


2.点击资源管理器——属性——设置启动项目为当前选定内容


3.选中Server项目,“引用”右击——添加引用



4.服务端代码


添加所需要的命名空间

using System.ServiceModel;            //添加引用using System.ServiceModel.Description;


定义一个服务协定,其中包含一个TestMethod方法,服务协定是一个接口

    [ServiceContract]    public interface IService  //服务协定是一个接口    {        [OperationContract]//添加Operationcontract特性,作为服务操作,如果不添加,就不想客户端公开该方法        string TestMethod();    }



定义一个类,实现这个接口

    public class MyService : IService    {        public string TestMethod()        {            return "呵呵,成功啦!";        }    }


在Main入口定义服务器相关参数,并启动服务

 static void Main(string[] args)        {            Uri baseURI=new Uri("http://localhost:8008/Service");            using (ServiceHost host = new ServiceHost(typeof(MyService), baseURI))            {                 //向服务器添加中街店                WSHttpBinding binding = new WSHttpBinding();                //这里不需要安全验证                binding.Security.Mode = SecurityMode.None;                host.AddServiceEndpoint(typeof(IService), binding, "my");                //为了能让VS生成客户端代码,即WSDL文档,故要添加一下行为                ServiceMetadataBehavior mdBehavior = new ServiceMetadataBehavior()                {                    HttpGetEnabled = true                };                host.Description.Behaviors.Add(mdBehavior);                                //如果服务顺利启动,则提示,处理Opened事件                host.Opened += (sender, e) => Console.WriteLine("服务已启动");                //启动服务器                try                {                    host.Open();                }                catch (Exception ex)                {                    Console.WriteLine(ex.Message);                }                Console.ReadKey();                //关闭服务器                host.Close();            }


5.完成服务端,运行一下,如果成功,则如图显示的样子



6.接下来,找到Server所在的\bin\debug目录中的Server.exe,运行,确保服务成功启动

选定Client项目,“引用”——添加服务引用





7.客户端代码

        static void Main(string[] args)        {            ServiceReference1.ServiceClient client = new ServiceReference1.ServiceClient();            Console.WriteLine(client.TestMethod());            Console.ReadKey();        }


8.客户端运行结果






写在后边

       小例子虽小,但是也有很多不明白的地方,但是对于WCF也有了进一步的了解,知道了如果通过WCF提供服务,下一篇总结知识点






0 0
原创粉丝点击