扩展WCF操作行为
2010-01-12 12:32
441 查看
使用IParameterInspector, IOperationBehavior,Attribute(参数检查器、操作行为接口和标签)扩展WCF操作行为
开发环境: VS2008 SP1 WIN2008 SP2
WCF允许我们在端点Endpoint、消息message、操作Operation、参数Parameter中扩展WCF。本文简单介绍如何截获操作的参数来扩展WCF的操作。这种扩展需要在WCF的Contract契约上加标签来实现,不能算是真正的AOP,但是有些AOP的意思。
实现步骤:1、实现自己的参数检查器;2、将参数检查器放入要实现的操作行为;3、在操作Operation上加入标签attribute
1、实现自己的参数检查器,实现参数检查器,在调用操作前检查参数是否为17位数字,在调用操作后发送执行结果
代码
public class EntryIdValidation : Attribute, IOperationBehavior
{
#region IOperationBehavior Members
public void AddBindingParameters(OperationDescription operationDescription,
BindingParameterCollection bindingParameters)
{
}
public void ApplyClientBehavior(OperationDescription operationDescription,
ClientOperation clientOperation)
{
EntryIdInspector EntryIdInspector = new EntryIdInspector();
clientOperation.ParameterInspectors.Add(EntryIdInspector);
}
public void ApplyDispatchBehavior(OperationDescription operationDescription,
DispatchOperation dispatchOperation)
{
EntryIdInspector EntryIdInspector = new EntryIdInspector();
dispatchOperation.ParameterInspectors.Add(EntryIdInspector);
}
public void Validate(OperationDescription operationDescription)
{
}
#endregion
}
3、在操作Operation上加入标签attribute,在操作契约中加上标签[b][EntryIdValidation][/b]
[ServiceContract]
public interface IRelSrvContract
{
[EntryIdValidation]
[OperationContract]
bool Rel(string strEntryID);
}
开发环境: VS2008 SP1 WIN2008 SP2
WCF允许我们在端点Endpoint、消息message、操作Operation、参数Parameter中扩展WCF。本文简单介绍如何截获操作的参数来扩展WCF的操作。这种扩展需要在WCF的Contract契约上加标签来实现,不能算是真正的AOP,但是有些AOP的意思。
实现步骤:1、实现自己的参数检查器;2、将参数检查器放入要实现的操作行为;3、在操作Operation上加入标签attribute
1、实现自己的参数检查器,实现参数检查器,在调用操作前检查参数是否为17位数字,在调用操作后发送执行结果
代码
public class EntryIdValidation : Attribute, IOperationBehavior
{
#region IOperationBehavior Members
public void AddBindingParameters(OperationDescription operationDescription,
BindingParameterCollection bindingParameters)
{
}
public void ApplyClientBehavior(OperationDescription operationDescription,
ClientOperation clientOperation)
{
EntryIdInspector EntryIdInspector = new EntryIdInspector();
clientOperation.ParameterInspectors.Add(EntryIdInspector);
}
public void ApplyDispatchBehavior(OperationDescription operationDescription,
DispatchOperation dispatchOperation)
{
EntryIdInspector EntryIdInspector = new EntryIdInspector();
dispatchOperation.ParameterInspectors.Add(EntryIdInspector);
}
public void Validate(OperationDescription operationDescription)
{
}
#endregion
}
3、在操作Operation上加入标签attribute,在操作契约中加上标签[b][EntryIdValidation][/b]
[ServiceContract]
public interface IRelSrvContract
{
[EntryIdValidation]
[OperationContract]
bool Rel(string strEntryID);
}
相关文章推荐
- 使用IParameterInspector, IOperationBehavior,Attribute(参数检查器、操作行为接口和标签)扩展WCF操作行为
- 通过“四大行为”对WCF的扩展[实例篇]
- 通过“四大行为”对WCF的扩展[实例篇]
- WCF 第五章 行为 事务-跨操作事务流
- WCF 第五章 行为 以属性为服务操作行为暴露一个参数检测器
- WCF扩展:行为扩展Behavior Extension<一>
- WCF 第五章 行为 事务-跨操作事务流
- 聚焦WCF行为的扩展
- WCF扩展系列 - 行为扩展(Behaviors)
- WCF扩展:行为扩展Behavior Extension
- WCF扩展:行为扩展Behavior Extension<一> 推荐
- 聚焦WCF行为的扩展
- 使用消息分发检查器IDispatchMessageInspector、服务器行为IServiceBehavior、端点行为IEndpointBehavior扩展WCF的消息分发行为
- 扩展WCF行为,自定义消息头,实现客户端标识的传递
- 如何通过扩展WCF来定制和扩展WCF行为
- 扩展WCF自定义行为(二)
- 如何通过扩展WCF来定制和扩展WCF行为
- WCF 第五章 行为 在WCF一个服务内部的事务操作
- WCF扩展:行为扩展Behavior Extension
- WCF扩展:行为扩展Behavior Extension<二>