【发布时间】:2011-06-12 19:39:19
【问题描述】:
我有一些 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,并且已经过测试。
但是当我在配置文件的行为部分引用
创建时出错 配置节处理程序 system.serviceModel/行为: 扩展元素“myBehavior2”不能 被添加到这个元素。验证 扩展注册在 扩展集合在 system.serviceModel/extensions/behaviorExtensions。 参数名称:元素
如果我创建一个非泛型 BehaviorExtensionElement 后代,一切都会正常工作,我可以这样做。但现在它困扰着我。 ;)
【问题讨论】:
标签: c# wcf generics configuration