/******************************************************************************* * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential * 类的信息: * 1.程序名称:MyServiceBehavior.cs * 2.功能描述:服务端终结点行为的行为扩展 * 编辑履历: * 作者 日期 版本 修改内容 * 陈晓野 2014/09/16 1.00 新建 *******************************************************************************/ using System; using System.Collections.ObjectModel; using System.ServiceModel; using System.ServiceModel.Channels; using System.ServiceModel.Configuration; using System.ServiceModel.Description; using System.ServiceModel.Dispatcher; namespace Dongke.IBOSS.PRD.WCF.Services.ServiceInterpector { /// /// 服务端终结点行为的行为扩展 /// public class MyServiceBehavior : BehaviorExtensionElement, IServiceBehavior { /// /// 获取行为的类型 /// public override Type BehaviorType { get { return typeof(MyServiceBehavior); } } /// /// 于当前配置设置来创建行为扩展 /// /// 行为扩展 protected override object CreateBehavior() { return new MyServiceBehavior(); } #region IServiceBehavior Members /// /// 于向绑定元素传递自定义数据,以支持协定实现 /// /// 服务的服务说明 /// 服务的宿主 /// 服务终结点 /// 绑定元素可访问的自定义对象 public void AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, Collection endpoints, BindingParameterCollection bindingParameters) { } /// /// 用于更改运行时属性值或插入自定义扩展对象(例如错误处理程序、消息或参数拦截器、安全扩展以及其他自定义扩展对象) /// /// 服务说明 /// 当前正在生成的宿主 public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) { foreach (ChannelDispatcher chDisp in serviceHostBase.ChannelDispatchers) { foreach (EndpointDispatcher epDisp in chDisp.Endpoints) { epDisp.DispatchRuntime.MessageInspectors.Add(new ServiceInterpector()); } } } /// /// 用于检查服务宿主和服务说明,从而确定服务是否可成功运行 /// /// 服务说明 /// 当前正在构建的服务宿主 public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) { } #endregion } }