Mam rozszerzenie zachowania WCF, które chciałbym dodać do klienta WCF. Jednak klient jest konstruowany programowo. Adres punktu końcowego może się różnić, ale znam typ. Mogę dodać zachowanie programowo lub w pliku konfiguracyjnym (zalecane), ale muszę przekazać trochę konfiguracji tylko w pliku konfiguracyjnym.Deklaracyjnie skonfiguruj rozszerzenie zachowania WCF na programowo skonstruowanym punkcie końcowym
Nie chcę tego we wspólnych zachowaniach (machine.config).
mogę dodać zachowanie programowo
endpoint.Behaviors.Add(new MyCustomBehavior())
Ale wolałbym zrobić to w config, więc mogę skonfigurować rozszerzenie również tam.
Czy można deklaratywnie dodawać i konfigurować rozszerzenie zachowania punktu końcowego do skonstruowanego programowo punktu końcowego, znając tylko typ lub interfejs, pozostawiając programowy punkt końcowy klienta do skonstruowania?
<system.serviceModel>
<client>
<!-- Created programmatically -->
</client>
<extensions>
<behaviorExtensions>
<add name="MyCustomBehavior" type="namespace.CustomBehaviors", MyAssembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
</extensions>
<behaviors>
<endpointBehaviors>
<behavior name="MyCustomBehavior">
<MyCustomBehavior MyImportantBehaviorParam1="foo" />
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
Oczywiście mógłbym umieścić config w innym dziale, i moje zachowanie czytać to tam, ale raczej bym w miarę możliwości korzystać z usług WCF.
Moje zachowanie już Realizuje Behavior Extension, zwróć uwagę na parametr w ... Przepraszam, jeśli moje pytanie nie było jasne, ale we wszystkich przykłady, które mogę znaleźć, konfiguracja behawioralna jest dodawana do konstruktywnie skonstruowanego punktu końcowego (usługa lub klient). Muszę wiedzieć, jak dodać go do punktów końcowych z daną umową, która jest tworzona programowo. –
DanO
Rozumiem, nie rozumiałem tego wcześniej. Zaktualizowałem odpowiedź tym, i możesz znaleźć pełny kod na https://github.com/carlosfigueira/WCFQuickSamples/tree/master/WCFForums/QuickCode1. – carlosfigueira
Dziękujemy za podjęcie wysiłku w celu zapewnienia tego rozwiązania! Zrezygnowałem już z robienia tego, co chciałem, na rzecz tego, co było łatwiejsze, ale jeśli wrócę do tego projektu, twój kod będzie bardzo pomocny! – DanO