/*******************************************************************************
* 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
}
}