У меня есть некоторые поведения для служб WCF, которые я просто хочу зарегистрировать; конфигурации нет. Я решил, что могу каждый раз пропускать создание потомка BehaviorExtensionElement, используя дженерики:
public class SimpleBehaviorExtensionElement<TBehavior> : BehaviorExtensionElement
where TBehavior: new()
{
protected override object CreateBehavior()
{
return new TBehavior();
}
public override Type BehaviorType
{
get { return typeof(TBehavior); }
}
}
И в Web.config:
<behaviorExtensions>
<add name="myBehavior2"
type="WcfService1.SimpleBehaviorExtensionElement`1[[WcfService1.MyBehavior,
WcfService1]], WcfService1"/>
</behaviorExtensions>
WcfService1.MyBehavior существует, реализует IServiceBehavior и был протестирован.
Но когда я ссылаюсь на
Произошла ошибка при создании
<behaviorExtensions> <add name="myBehavior2" type="WcfService1.SimpleBehaviorExtensionElement`1[[WcfService1.MyBehavior, WcfService1]], WcfService1"/> </behaviorExtensions>
WcfService1.MyBehavior существует, реализует IServiceBehavior и был протестирован.
Но когда я ссылаюсь на
в разделе поведения файла конфигурации, я получаю: Произошла ошибка при создании
<behaviorExtensions> <add name="myBehavior2" type="WcfService1.SimpleBehaviorExtensionElement`1[[WcfService1.MyBehavior, WcfService1]], WcfService1"/> </behaviorExtensions>
WcfService1.MyBehavior существует, реализует IServiceBehavior и был протестирован.
Но когда я ссылаюсь на
в разделе поведения файла конфигурации, я получаю: Произошла ошибка при создании обработчик раздела конфигурации для system.serviceModel / поведения: Элемент расширения myBehavior2 не может быть добавленным к этому элементу. Подтвердите это расширение зарегистрировано в коллекция расширений на system.serviceModel / extensions / behaviorExtensions. Имя параметра: element
Все работает, если я создаю неуниверсальный потомок BehaviorExtensionElement, что я могу сделать. Но теперь это меня беспокоит. ;)