我做了一些挖掘,在 MSDN 上找到了 bindingExtensions 元素。尽管那里的文档表明您可以通过这种方式添加绑定,但我查看了我的 machine.config 文件并发现其中注册了以下 3.5 绑定:
<bindingExtensions>
<add name="wsHttpContextBinding" type="System.ServiceModel.Configuration.WSHttpContextBindingCollectionElement, System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="netTcpContextBinding" type="System.ServiceModel.Configuration.NetTcpContextBindingCollectionElement, System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="webHttpBinding" type="System.ServiceModel.Configuration.WebHttpBindingCollectionElement, System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="basicHttpContextBinding" type="System.ServiceModel.Configuration.BasicHttpContextBindingCollectionElement, System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</bindingExtensions>
这些类用作绑定元素的集合,继承自奇怪的 StandardBindingCollectionElement<TStandardBinding, TBindingConfiguration> 类。这看起来是正确的类,可以继承并创建关联的StandardBindingElement。
集合使用上面列出的语法注册,然后应该与内置 WCF 绑定完全相同。