首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使定制绑定可通过App.config进行配置

使定制绑定可通过App.config进行配置
EN

Stack Overflow用户
提问于 2009-08-26 08:54:44
回答 1查看 4.2K关注 0票数 2

我已经创建了一个自定义绑定,并希望使其可通过App.config进行配置。

绑定目前没有特殊的选项,因此它只需支持

代码语言:javascript
复制
<endpoint address="http://myAddress" 
          binding="myBinding"
          contract="myContract">

在查看了一些站点后,我发现我必须通过<BindingExtension>启用配置支持。然而,MSDN站点并没有多大帮助,因为当我尝试添加

代码语言:javascript
复制
<extensions>
  <bindingExtensions>
    <add name="myBinding" 
         type="MyNamespace.MyHttpBinding, NameOfMyDll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
  </bindingExtensions>
</extensions>

,在尝试启动程序时,我只收到以下错误消息:

找不到

配置绑定扩展“system.serviceModel/bindings/myBinding”。请验证此绑定扩展是否在system.serviceModel/extensions/bindingExtensions中正确注册以及拼写是否正确。

bindingExtension中提到的类型指向从Binding继承的类型。

我必须添加什么才能为我的绑定启用配置支持?

我的目标只是能够将我的绑定导出到配置文件中。我不想允许对绑定进行任何特殊设置。它应该只在配置文件的<endpoint>标签上可用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-26 19:36:33

你在正确的轨道上。但是,关键的一点是bindingExtension元素不应该直接指向绑定类本身。

相反,您需要有几个支持配置模型类。首先,您注册的bindingExtension实际上是一个继承自StandardBindingCollectionElement的类。这表示StandardBindingElement的集合,该类是configuration类,它具有绑定将在.config文件中支持的所有配置属性,并负责创建绑定实例并设置在.config文件中设置的任何属性。

另外,请注意,通常情况下,您将遵循类似的模式来创建TransportBindingElement的配置视图(如果您正在进行传输通道),以便您可以通过配置使用它来创建自定义绑定。在这种情况下,您应该有一个继承TransportElement的类。

附注:如果你认为这是一个可怕的重复代码,如果你有很多设置,那么我同意。

更新:发现了您的问题所在:您的配置文件中至少需要一个空节。只需添加它,绑定现在就会被识别。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1333287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档