WCF扩展,不包括程序集版本

Mar*_*ell 11 .net wcf assemblies

正如这里所讨论的,我正在尝试添加WCF端点扩展; 我有它的工作,但我需要包括完整的装配细节:

<extensions>
    <behaviorExtensions>
        <add name="protobuf" type="ProtoBuf.ServiceModel.ProtoBehaviorExtension, protobuf-net, Version=1.0.0.275, Culture=neutral, PublicKeyToken=257b51d87d2e4d67"/>
    </behaviorExtensions>
</extensions>
Run Code Online (Sandbox Code Playgroud)

我会喜欢做的(以避免问题在更新时等,尤其是对样本)是只包括名称:

<add name="protobuf" type="ProtoBuf.ServiceModel.ProtoBehaviorExtension, protobuf-net"/>
Run Code Online (Sandbox Code Playgroud)

(这可能是您对标准汇编命名约定的期望)

但是,如果我这样做,我会收到一个大错误:

分析器错误消息:为system.serviceModel/behavior创建配置节处理程序时发生错误:无法将扩展元素"protobuf"添加到此元素.验证扩展是否已在system.serviceModel/extensions/behaviorExtensions的扩展集合中注册.

是否有可能(如果是这样:如何)添加扩展而无需指定程序集版本?

Dre*_*rsh 11

AFAIK,遗憾的是,不能在behaviorExtensions部分中使用部分名称.奇怪的是,它仅适用于behaviorExtensions部分.例如,您可以在没有完整程序集名称的情况下执行bindingElementExtensions.只是看起来像编写配置部分实现的人不允许部分名称加载,而其他人一样.我还没有检查过.NET 4中是否已经解决了这个问题.

  • 它似乎在.NET 4中得到修复 (5认同)