Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WCF extensions without including the assembly version

As discussed here, I'm trying to add a WCF endpoint-extension; I've got it working, but I need to include the full assembly details:

<extensions>
    <behaviorExtensions>
        <add name="protobuf" type="ProtoBuf.ServiceModel.ProtoBehaviorExtension, protobuf-net, Version=1.0.0.275, Culture=neutral, PublicKeyToken=257b51d87d2e4d67"/>
    </behaviorExtensions>
</extensions>

What I would like to do (to avoid issues when updating etc, especially for samples) is to include just the names:

<add name="protobuf" type="ProtoBuf.ServiceModel.ProtoBehaviorExtension, protobuf-net"/>

(which is what you might expect from standard assembly-naming conventions)

However, if I do this, I get a big error:

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

Is it possible (and if so: how) to add an extension without having to specify the assembly-version?

like image 626
Marc Gravell Avatar asked Nov 11 '09 16:11

Marc Gravell


1 Answers

AFAIK, it's unfortunately not possible to use partial names in the behaviorExtensions section. Strangely enough it's only for the behaviorExtensions section. For example, you can do bindingElementExtensions without full assembly name. Just looks like whoever wrote that configuration section implementation didn't allow for partial name loading where as the others did. I haven't checked to see if this is remedied in .NET 4 yet.

like image 121
Drew Marsh Avatar answered Oct 06 '22 03:10

Drew Marsh