WCF自定义绑定

时间:2011-09-28 11:12:17

标签: wcf binding

我在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工厂期望的绑定对象。?

由于 阿伦

1 个答案:

答案 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);

由于