Tengo una extensión de comportamiento WCF que me gustaría agregar a un cliente WCF. Sin embargo, el cliente se construye programáticamente. La dirección del punto final puede variar, pero sé el tipo. Podría agregar el comportamiento programáticamente o en el archivo de configuración (preferido), pero necesito pasar alguna configuración en el archivo de configuración solamente.Configurar declaradamente la extensión de comportamiento WCF en el punto final construido mediante programación
No quiero esto en Comportamientos comunes (machine.config).
puedo añadir el comportamiento mediante programación
endpoint.Behaviors.Add(new MyCustomBehavior())
pero prefiero hacerlo en la configuración, por lo que puede configurar la extensión allí también.
¿Es posible agregar y configurar de forma declarativa una extensión de comportamiento de punto final a un punto final construido mediante programación sabiendo únicamente que el tipo o interfaz mientras se deja el punto final del cliente se construirá mediante programación?
<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>
Por supuesto que podría poner la configuración en otra sección, y tienen mi comportamiento leer ahí, pero yo prefiero utilizar las instalaciones de WCF, si es posible.
Mi comportamiento ya implementa la extensión del comportamiento, tenga en cuenta el parámetro en ... Lo siento si mi pregunta no era clara, pero en toda la ejemplos que puedo encontrar, el behaviorConfiguration se agrega a un punto final construido declarativamente (servicio o cliente). Necesito saber cómo agregarlo a los puntos finales con un contrato determinado que se crean mediante programación. –
DanO
Entendido, no lo entendí antes. He actualizado la respuesta con esto y puedes encontrar el código completo en https://github.com/carlosfigueira/WCFQuickSamples/tree/master/WCFForums/QuickCode1. – carlosfigueira
¡Gracias por el esfuerzo realizado para proporcionar esa solución! Ya dejé de hacer lo que quería a favor de lo que era más fácil, pero si vuelvo a visitar ese proyecto, ¡su código será de gran ayuda! – DanO