WCF服务元数据交换编程怎么实现

这篇文章主要讲解了“WCF服务元数据交换编程怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“WCF服务元数据交换编程怎么实现”吧!

你所需要的网站建设服务,我们均能行业靠前的水平为你提供.标准是产品质量的保证,主要从事成都网站制作、网站设计、外贸网站建设企业网站建设、成都手机网站制作、网页设计、成都品牌网站建设、网页制作、做网站、建网站。创新互联拥有实力坚强的技术研发团队及素养的视觉设计专才。

前者配置简单、快捷,后者相对复杂。但是编程方式允许代码运行时控制或者设置元数据交换的信息。因而更加灵活。下面我们就来看看如何通过代码实现刚才的服务原数据交换的配置。

WCF服务元数据交换HTTP-GET编程实现:

必须添加对命名空间的引用, using System.ServiceModel.Description;我们对服务元数据操作的类和接口信息定义在此命名空间里,具体的实现HTTP-GET的代码如下:

ServiceMetadataBehavior metadataBehavior;  //定义服务行为变量,  metadataBehavior = host.Description.Behaviors.Find();  //获取宿主的行为列表  if (metadataBehavior == null)  //如果没有服务原数据交换的行为,实例化添加服务原数据交换行为  {  metadataBehavior = new ServiceMetadataBehavior();  Uri httpAddress = new Uri("http://localhost:8001/");  metadataBehavior.HttpGetUrl =httpAddress;  metadataBehavior.HttpGetEnabled = true;//设置HTTP方式  host.Description.Behaviors.Add(metadataBehavior);  }

首先是获得服务行为的列表信息,如果没有设置,我们就进行实例化服务原数据交换行为,并设置http方式可用。 host.Description.Behaviors.Add(metadataBehavior);添加宿主服务的行为。

WCF服务元数据交换WS-*编程实现:

这里分别实现了HTTP、TCP、IPC三种方式的的元数据交换的代码。和http-get方式略有不同,我们需要实例化自己绑定元素和绑定,***作为参数传递给host宿主实例。具体实现代码如下:

//2编程方式实现ws*原数据交换  //生命三个绑定节点类  BindingElement tcpBindingElement = new TcpTransportBindingElement();  BindingElement httpBindingElement = new HttpsTransportBindingElement();  BindingElement pipeBindingElement = new NamedPipeTransportBindingElement();  //实例化通用绑定类的实例  Binding tcpBinding = new CustomBinding(tcpBindingElement);  Binding httpBinding = new CustomBinding(httpBindingElement);  Binding pipeBinding = new CustomBinding(pipeBindingElement);  //  Uri tcpBaseAddress = new Uri("net.tcp://localhost:9001/");  Uri httpBaseAddress = new Uri("http://localhost:9002/");  Uri pipeBaseAddress = new Uri("net.pipe://localhost/");  host.AddServiceEndpoint(typeof(WCFService.IWCFService), new NetTcpBinding(), tcpBaseAddress);  host.AddServiceEndpoint(typeof(WCFService.IWCFService), new WSHttpBinding(), httpBaseAddress);  host.AddServiceEndpoint(typeof(WCFService.IWCFService), new NetNamedPipeBinding(), pipeBaseAddress);   //ServiceMetadataBehavior metadataBehavior;//定义服务行为变量,  metadataBehavior = host.Description.Behaviors.Find();  //获取宿主的行为列表  if (metadataBehavior == null)//如果没有服务原数据交换的行为,实例化添加服务原数据交换行为  {  metadataBehavior = new ServiceMetadataBehavior();   host.Description.Behaviors.Add(metadataBehavior);  }  //如果没有可用的mex节点,可以使用一下代码判断,添加mex节点   host.AddServiceEndpoint(typeof(IMetadataExchange), tcpBinding, "mex");  host.AddServiceEndpoint(typeof(IMetadataExchange), httpBinding, "mex");  host.AddServiceEndpoint(typeof(IMetadataExchange), pipeBinding, "mex");

感谢各位的阅读,以上就是“WCF服务元数据交换编程怎么实现”的内容了,经过本文的学习后,相信大家对WCF服务元数据交换编程怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


文章名称:WCF服务元数据交换编程怎么实现
网页地址:http://azwzsj.com/article/jcggdp.html