嗨,我有我自己的ServiceBehavior:
public class StructureMapServiceBehavior : IServiceBehavior
{
public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
{
foreach (ChannelDispatcherBase cdb in serviceHostBase.ChannelDispatchers)
{
ChannelDispatcher cd = cdb as ChannelDispatcher;
if (cd != null)
{
foreach (EndpointDispatcher ed in cd.Endpoints)
{
ed.DispatchRuntime.InstanceProvider =
new StructureMapInstanceProvider(serviceDescription.ServiceType);
}
}
}
}
public void AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, Collection<ServiceEndpoint> endpoints, BindingParameterCollection bindingParameters)
{
}
public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
{
}
}如何使用WCF配置工具在App.config中添加?
:

发布于 2011-06-01 20:43:35
创建从BehaviorExtensionElement继承的类
public class StructureMapServiceBehaviorElement : BehaviorExtensionElement
{
public override Type BehaviorType
{
get { return typeof(StructureMapServiceBehavior ); }
}
protected override object CreateBehavior()
{
return new StructureMapServiceBehavior ();
}
}然后在配置文件中注册您的扩展:
<behaviorExtensions>
<add name="timeService" type="YourAssembly.StructureMapServiceBehaviorElement ,
YourAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>完成后,您可以像使用其他扩展一样使用您的扩展。
编辑:使用配置工具进行编辑,其过程与此类似。一旦创建了上面的类,在WCF配置工具的扩展部分注册您的行为(高级->扩展->行为元素扩展)
发布于 2011-06-01 20:44:06
您必须创建从BehaviorExtensionElement派生的自定义类,它将负责创建您的自定义行为。在配置文件中添加此类行为所需的步骤的Here is the example (必须首先在behaviorsExtensions部分注册扩展名)。
在配置工具中,我猜你首先必须在Advanced > Extensions中注册扩展,然后你可能就可以使用该服务行为了。
https://stackoverflow.com/questions/6201249
复制相似问题