首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将自定义ServiceBehavior添加到WCF配置中

如何将自定义ServiceBehavior添加到WCF配置中
EN

Stack Overflow用户
提问于 2011-06-01 20:36:32
回答 2查看 5.2K关注 0票数 2

嗨,我有我自己的ServiceBehavior:

代码语言:javascript
复制
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中添加?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-01 20:43:35

创建从BehaviorExtensionElement继承的类

代码语言:javascript
复制
public class StructureMapServiceBehaviorElement : BehaviorExtensionElement
{
    public override Type BehaviorType
    {
        get { return typeof(StructureMapServiceBehavior ); }
    }

    protected override object CreateBehavior()
    {
        return new StructureMapServiceBehavior ();
    }
}

然后在配置文件中注册您的扩展:

代码语言:javascript
复制
<behaviorExtensions>
    <add name="timeService" type="YourAssembly.StructureMapServiceBehaviorElement ,
YourAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>

完成后,您可以像使用其他扩展一样使用您的扩展。

编辑:使用配置工具进行编辑,其过程与此类似。一旦创建了上面的类,在WCF配置工具的扩展部分注册您的行为(高级->扩展->行为元素扩展)

票数 3
EN

Stack Overflow用户

发布于 2011-06-01 20:44:06

您必须创建从BehaviorExtensionElement派生的自定义类,它将负责创建您的自定义行为。在配置文件中添加此类行为所需的步骤的Here is the example (必须首先在behaviorsExtensions部分注册扩展名)。

在配置工具中,我猜你首先必须在Advanced > Extensions中注册扩展,然后你可能就可以使用该服务行为了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6201249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档