c# – 如何在web.config中避免添加汇编版本?

前端之家收集整理的这篇文章主要介绍了c# – 如何在web.config中避免添加汇编版本?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在向我的WCF服务添加一个自定义端点行为,并使用从BehaviorExtensionElement扩展的类来初始化它.在我的web.config中,我添加以下内容注册行为扩展:
<system.serviceModel>
    <services>
      <service name="Service.MyService">
        <endpoint address=""
                  behaviorConfiguration="endpointBehavior"
                  binding="basicHttpBinding"
                  contract="Contracts.IMyService"/>
      </service>
    </services>

    <behaviors>
      <endpointBehaviors>
        <behavior name="endpointBehavior">
          <logBehavior />
        </behavior>
      </endpointBehaviors>
    </behaviors>

    <extensions>
      <behaviorExtensions>
        <add name="logBehavior"
             type="MyNamespace.MyBehaviorExtensionElement,MyAssembly,Version=0.0.0.1,Culture=neutral,PublicKeyToken=null" />
      </behaviorExtensions>
    </extensions>
</system.serviceModel>

这工作绝对正常,但我必须指定程序集的版本才能加载它.如果我将程序集引用更改为仅MyNamespace.MyBehaviorExtensionElement,MyAssembly没有版本/ culture / token,则服务无法启动并显示错误

Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: An error occurred creating the configuration section handler for system.serviceModel/behaviors: Extension element ‘logBehavior’ cannot be added to this element. Verify that the extension is registered in the extension collection at system.serviceModel/extensions/behaviorExtensions.
Parameter name: element

作为构建过程的一部分,我的程序集版本的最后部分将经常更改.如何每次构建版本增加(可能是数百次)时,我如何避免使用新版本号继续更新web.config?

解决方法

我认为在.net 4或更高版本中删除了对完全指定的类名的限制.你有没有尝试过:
<behaviorExtensions>
     <add name="logBehavior"
         type="MyNamespace.MyBehaviorExtensionElement,MyAssembly" />
  </behaviorExtensions>

我可能错了!

猜你在找的C#相关文章