我在C#的sevrice端使用自定义绑定。我想在HTTP中使用二进制编码。
<bindings>
<customBinding>
<binding name="myOwnBinding">
<binaryMessageEncoding></binaryMessageEncoding>
<httpTransport/>
</binding>
</customBinding>
</bindings>
<extensions>
<bindingExtensions>
<add name="myOwnBinding" type="CustomBinding.UserBinding,CustomBinding"/>
</bindingExtensions>
</extensions>
<service name="CustomBinding.Service1" behaviorConfiguration="CustomBinding.Service1Behavior">
此服务不会公开元数据。因此,我将无法在客户端创建服务引用来使用服务。
现在,我想知道如何在客户端通道工厂中使用此绑定来使用此服务。下面是我的客户端代码。
EndpointAddress address = new EndpointAddress("http://localhost:2418/Service1.svc");
ChannelFactory<IService1> c = new ChannelFactory<IService1>(Binding, address);
IService1 reqChannel = c.CreateChannel();
String str = reqChannel.GetData(1);
如何使用自定义绑定手动填充Channel工厂期望的绑定对象。?
由于 阿伦
答案 0 :(得分:0)
当我使用app.config加载自定义绑定对象时,我已将其整理出来。
System.ServiceModel.Channels.CustomBinding cus = new System.ServiceModel.Channels.CustomBinding("CustomBinding_IService1");
EndpointAddress address = new EndpointAddress("http://localhost:2418/Service1.svc");
ChannelFactory<IService1> c = new ChannelFactory<IService1>(cus);
IService1 serviceInstance = c.CreateChannel(address);
String str = serviceInstance.GetData(1);
由于