先来看看代码,然后再解说一下。
WCF应用的编码实现    class Program
    }

1、通过using (ServiceHost serviceHost = new ServiceHost(typeof(ServiceMonitor))) 初始化了一个ServiceHost对象,然后通过编码创建ServiceEndpoint然后添加到ServiceHost对象中,根据ABC规则,ServiceEndpoint的创建最少需要传入Contract、Binding、Address,例如:
WCF应用的编码实现serviceHost.AddServiceEndpoint(typeof(IMonitor), binding, "net.pipe://localhost/ServiceMonitor");

2、创建ServiceHost后还可以添加相应的IServiceBehavior实现例如:内置的ServiceMetadataBehavior等,也可以创建自定义的Behavior
WCF应用的编码实现public class CustomBehavior :IServiceBehavior
可以通过serviceHost.Description.Behaviors.Add(behavior);把内置或或自定义的Behavior添加到ServiceHost中。

3、WCF的客户端代理可以通过ChannelFactory来创建,只要为ChannelFactory<T>.CreateChannel 方法传入Binding和Address参数即可,当然也可以通过
public class ContentReceiverClient : ClientBase<T>, T
如:public class ContentReceiverClient : ClientBase<IMonitor>, IMonitor 方式创建

4、当使用ChannelFactory创建客户代理时请调用IDisposable方法关闭资源
WCF应用的编码实现using (iMonitor as IDisposable)
如果使用Client : ClientBase<T>, T 创建客户代理如:
base.Channel.接口方法
则需要在调用完后Client.Close()关闭资源。

相关文章:

  • 2021-09-08
  • 2021-05-29
  • 2021-06-20
  • 2022-01-09
  • 2022-02-23
  • 2022-12-23
  • 2021-09-14
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-28
  • 2021-07-30
  • 2022-12-23
  • 2021-12-03
  • 2021-12-02
  • 2021-10-23
相关资源
相似解决方案