110,552
社区成员
发帖
与我相关
我的任务
分享
public class MyBehavior : BehaviorExtensionElement, IEndpointBehavior
{
public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
{
//clientRuntime.MessageInspectors.Add(new MyInterceptor());
}
public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
{
endpointDispatcher.DispatchRuntime.MessageInspectors.Add(new MyInterceptor());
}
public void Validate(ServiceEndpoint endpoint) { }
public override Type BehaviorType
{
get { return typeof(MyBehavior); }
}
protected override object CreateBehavior()
{
return new MyBehavior();
}
}
public class MyInterceptor : IDispatchMessageInspector//, IClientMessageInspector
{
public object AfterReceiveRequest(ref System.ServiceModel.Channels.Message request, IClientChannel channel, InstanceContext instanceContext)
{
//验证逻辑
}
}
最后记得配置
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="messageInterceptor" type="命名空间.MyBehavior, 程序集名称"/>
</behaviorExtensions>
</extensions>
</system.serviceModel>