| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- /*******************************************************************************
- * 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
- {
- /// <summary>
- /// 服务端终结点行为的行为扩展
- /// </summary>
- public class MyServiceBehavior : BehaviorExtensionElement, IServiceBehavior
- {
- /// <summary>
- /// 获取行为的类型
- /// </summary>
- public override Type BehaviorType
- {
- get { return typeof(MyServiceBehavior); }
- }
- /// <summary>
- /// 于当前配置设置来创建行为扩展
- /// </summary>
- /// <returns>行为扩展</returns>
- protected override object CreateBehavior()
- {
- return new MyServiceBehavior();
- }
- #region IServiceBehavior Members
- /// <summary>
- /// 于向绑定元素传递自定义数据,以支持协定实现
- /// </summary>
- /// <param name="serviceDescription">服务的服务说明</param>
- /// <param name="serviceHostBase">服务的宿主</param>
- /// <param name="endpoints">服务终结点</param>
- /// <param name="bindingParameters">绑定元素可访问的自定义对象</param>
- public void AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, Collection<ServiceEndpoint> endpoints, BindingParameterCollection bindingParameters)
- {
- }
- /// <summary>
- /// 用于更改运行时属性值或插入自定义扩展对象(例如错误处理程序、消息或参数拦截器、安全扩展以及其他自定义扩展对象)
- /// </summary>
- /// <param name="serviceDescription">服务说明</param>
- /// <param name="serviceHostBase">当前正在生成的宿主</param>
- 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());
- }
- }
- }
- /// <summary>
- /// 用于检查服务宿主和服务说明,从而确定服务是否可成功运行
- /// </summary>
- /// <param name="serviceDescription">服务说明</param>
- /// <param name="serviceHostBase">当前正在构建的服务宿主</param>
- public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
- {
- }
- #endregion
- }
- }
|