2.2.2. 直接使用引用服务后形成的本地代理类
上面使用ChannelFactory的CreateChannel静态方法建立代理只使用到了引用WCF服务后在客户端生成的Contract,同时前面也说过,引用WCF服务后,还会在同时给每个Contract不同的Endpoint生成一个继承自System.ServiceModel.ClientBase的本地代理类。
客户端可以直接使用多个重载的代理类构造方法实例化这些代理类。如果不使用配置文件,使用这个构造方法:
SecondServiceClient(Binding binding, EndpointAddress remoteAddress)
其中SecondServiceClient为本地的一个代理类。实例化一个代理类的代码是这样的:
localhost.ServiceClient proxy = new localhost.ServiceClient(new BasicHttpBinding(), new EndpointAddress(":8080/WCFService/Service"));
同样,实例化的proxy也包含了一个Endpoint的ABC三个主要元素:
Address – new EndpointAddress(":8080/WCFService/Service")是地址。
Bingding – new BasicHttpBinding() 是绑定。
Contract –localhost.ServiceClient本身就是继承自某一个Contract的
2.3. 使用代理实例的方法
有了WCF的本地代理类实例,就可以使用服务提供的方法了。
string result = proxy.MyOperation1("myFirstWCF");