Tengo algunos comportamientos de servicio para los servicios de WCF que solo quiero registrar; no hay configuración Pensé que podía saltar la creación de un descendiente BehaviorExtensionElement cada vez mediante el uso de los genéricos:¿Es posible un BehaviorExtensionElement genérico?
public class SimpleBehaviorExtensionElement<TBehavior> : BehaviorExtensionElement
where TBehavior: new()
{
protected override object CreateBehavior()
{
return new TBehavior();
}
public override Type BehaviorType
{
get { return typeof(TBehavior); }
}
}
Y en Web.config:
<behaviorExtensions>
<add name="myBehavior2"
type="WcfService1.SimpleBehaviorExtensionElement`1[[WcfService1.MyBehavior,
WcfService1]], WcfService1"/>
</behaviorExtensions>
WcfService1.MyBehavior existe, implementa IServiceBehavior, y ha sido probado.
Pero cuando me refiero a < myBehavior2/> en la sección comportamiento del archivo de configuración, me sale:
Se produjo un error al crear el controlador de la sección de configuración de system.serviceModel/comportamientos: Elemento Extensión 'myBehavior2' no puede agregarse a este elemento. Verifique que la extensión esté registrada en la colección de extensiones en system.serviceModel/extensions/behaviorExtensions. Nombre Parámetro: Elemento
Todo funciona si creo un descendiente BehaviorExtensionElement no genérico, lo que puedo hacer. Pero ahora me molesta. ;)
No es el caso. Tengo elementos de extensión de comportamiento de trabajo que especifican el tipo sin una versión. – TrueWill
@TrueWill: dudo que ninguno de esos elementos de trabajo sea genérico. –
¿Has probado esto y lo has conseguido con una extensión genérica? – TrueWill