我知道此服务中的所有操作都需要相同的 OperationBehavior。我可以实现一个 ServiceBehavior,它在操作运行之前执行相同的功能吗?
我目前有:
[ServiceContract]
public interface IService
{
[AuthTokenValidation]
[OperationContract]
string DoThis(string authtoken);
}
我想将其替换为:
[AuthTokenValidation]
[ServiceContract]
public interface IService
{
[OperationContract]
string DoThis(string authtoken);
}
在我的 AuthTokenValidation 属性中,我在 ApplyDispatchBehavior 方法中有以下代码:
public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation)
{
AuthTokenInspector inspector;
inspector = new AuthTokenInspector(AuthTokenIndex);
dispatchOperation.ParameterInspectors.Add(inspector);
}
我检查了 IServiceBehavior 中的 ApplyDispatchBehavior 方法,但我无法弄清楚如何访问当前正在调用的 DisppatchOperation。
public void ApplyDispatchBehavior(ServiceDescription serviceDescription, System.ServiceModel.ServiceHostBase serviceHostBase)
{
//Can I reach the OperationDispatch from in here??
}
这是使用 ServiceBehavior 的正确方法,还是我应该满足于 OperationBehaviors 来实现此功能?