请问WCF中channelfactory类的使用吗?如果服务中有任何代码更改,它是否有助于我们防止手动更新服务引用?
最佳答案
这是构建客户端代理来调用您的服务的过程的一部分。
默认情况下,如果您执行“添加服务引用”,您只会获得 (myService)Client
您可以实例化和使用的类。
这在幕后执行的是一个两步过程:
为您的服务契约(Contract) (
ChannelFactory<T>
) 创建一个 channel 工厂 - 该类能够创建特定于契约(Contract)的 channel (您的客户与客户之间的通信链接)被调用的服务)然后使用该 channel 工厂实际创建一个 channel ,以建立链接。
创建 channel 工厂是一个相当昂贵的步骤 - 因此,如果您手动执行此操作,您会希望尝试尽可能长时间地缓存该 channel 工厂。
从 channel 工厂创建实际 channel 并不是一项艰巨的任务。
因此,如果您确实有权访问您的服务契约(Contract)(例如,通过共享契约(Contract)组件),您可以将创建客户端代理的过程分为两个步骤,并希望优化第一个步骤(通过缓存 channel 工厂)。
但是,这需要您直接访问您的服务契约(Contract) - 通常只有当您控制通信的两端并且两端都是 .NET 时才会出现这种情况。
关于.net - channel 工厂类-WCF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3082214/