У меня есть расширение поведения WCF, которое я хотел бы добавить в клиент WCF. Однако клиент построен программно. Адрес конечной точки может отличаться, но я знаю тип. Я мог бы добавить поведение программно или в конфигурационный файл (предпочтительно), но мне нужно передать некоторую конфигурацию только в конфигурационный файл.
Я не хочу этого в Общем поведении (machine.config).
Я могу добавить поведение программно.
endpoint.Behaviors.Add(new MyCustomBehavior())
Но я предпочитаю делать это в конфиге, чтобы там же можно было настроить расширение.
Можно ли декларативно добавить и настроить расширение поведения конечной точки для программно созданной конечной точки, зная только тип или интерфейс, оставив клиентскую конечную точку для создания программным путем?
<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>
Конечно, я мог бы поместить конфиг в другой раздел, и мое поведение прочитало бы его там, но я бы предпочел использовать средства WCF, если это возможно.