Cos*_*sta 8 wcf channelfactory
我对代理和渠道感到困惑.根据我的阅读,WCF客户端使用代理通过一系列渠道传递消息.每个频道负责某项任务,例如,一个频道正在编码该消息,另一个频道正在对其进行加密.
当我看到以下代码时,我的困惑就开始了
什么时候proxy.MyMethod()被调用,它实际上称为整个渠道链?
作者使用了调用的方法CreateChannel并命名了标识符代理.那么在WCF架构中,Proxy只是一个空间高级通道,它不是一个独立的架构元素?
Binding binding = new NetTcpBinding();
EndpointAddress address = new EndpointAddress("net.tcp://localhost:8000");
IMyContract proxy = ChannelFactory<IMyContract>.CreateChannel(binding,address);
using(proxy as IDisposable)
{
proxy.MyMethod();
}
Run Code Online (Sandbox Code Playgroud)Ale*_*lex 11
在WCF中,您有3个主要组件 - 合同,地址和绑定.通道是管道,根据这三个部分构建.

通道的目的是将消息修改为格式,这对于客户端和服务器都是可理解的,并且可以组织它正确的传输.传输和协议通道用于此目的.为了简化此过程,我们使用绑定.每个绑定由元素组成,这些元素表示通道堆栈中的某个通道.
因此,每当您调用方法时,它会根据您的DataContract形成消息,并将其传递到整个通道链中.每个频道都会修改您的消息.好处看起来像这样

WCF代理实际上只是一个抽象层次.它是进程外服务的进程内代表.您可以将它想象为一个对象,根据您的绑定元素和dataContract生成并正确配置,这允许您的客户端和服务器端相互理解.