WCF学习笔记(一),WCF预览
原文转自:http://www.systhinker.com/html/59/n-20659.html WCF的全称是:Windows Commnication Foundation.WCF,是微软对一系列产业标准定义的实现,是面向服务实现的比较好的途径。传统的三层结构模式一般为:数据访问层、业务逻辑层、客户层,但是这种模式下客户层与业务逻辑层的耦合较为紧密,而面向服务则使得客户层跟业务逻辑上实现松耦合。
namespace?HenllyeeWCF.Service
{ ????[ServiceContract(Namespace="http://henllyee.cnblogs.com")] ????public?interface?IHello ????{ ????????[OperationContract] ????????string?SayHello(?strName); ????} ????class?Hello:IHello ????{ ?????????strName) ????????{ ????????????return?String.Format({0}?say?hello?at?{1},?strName,?DateTime.Now.ToString()); ????????} ????} } 首先我们要在接口或则类上标识为"ServiceContract",其中有两个可选的参数:"Namespace"、"Name",即指定命名空间跟类或则接口的名称。而即使是应用了ServiceContract,也不是类型的成员就是契约中的,还必须显示的用OperationContract来暴露操作,为了方便重载,OperationContract提供了可选参数:Name来指定暴露操作的另外的名称。
namespace
?HenllyeeWCF.Host
{ ?????Program ????staticvoid?Main([]?args) ????????using?(ServiceHost?host?=new?ServiceHost(typeof(HenllyeeWCF.Service.Hello))) ????????????{ ????????????????host.AddServiceEndpoint((HenllyeeWCF.Service.IHello),??NetTcpBinding(),?net.tcp://localhost:8000/Hello); ????????????????host.Open(); ????????????????Console.Read(); ????????????} ????????} } WCF客户端跟服务器端的交互一般是采用EndPoint来交互的,每个EndPoint是由Address(地址)、Binding(绑定)、Contract(契约)组成的。而服务器端是通过暴露EndPoint来交互的。在程序中首先我们定义了一个ServiceHost,同时指定了服务为我们已经定义的HenllyeeWCF.Service.Hello,同时跟host添加一个终节点,然后打开host,等待用户取消进程。 ?HenllyeeWCF.Client
{ ????[ServiceContract(Namespace???IHello ???? ?????Program ????[]?args) ????????{ ????????????IHello?proxy??ChannelFactory<IHello>.CreateChannel(?????????????????????????EndpointAddress()); ????????????Console.WriteLine(proxy.SayHello(Henllyee?Cui)); ????????????Console.Read(); ????????} } 首先我针对服务定义了完全相同的接口,然后通过使用通道ChannelFactory来实现代理,指定绑定、跟EndPoint的地址就可以了。 然后我们首先来运行下Host,在运行Client端出现效果图: WCF学习笔记系列链接: WCF学习笔记(一),WCF预览 WCF学习笔记(二),服务契约 WCF学习笔记(三),数据契约 WCF学习笔记(四),数据契约的事件 WCF学习笔记(五),数据契约的已知类型 WCF学习笔记(六),实例类型 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |