Я знаю, что все операции в этой службе потребуют одного и того же 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);
}
Я проверил метод ApplyDispatchBehavior вIServiceBehavior, но я не мог понять, как получить доступ к DisppatchOperation, который в данный момент вызывается.
public void ApplyDispatchBehavior(ServiceDescription serviceDescription, System.ServiceModel.ServiceHostBase serviceHostBase)
{
//Can I reach the OperationDispatch from in here??
}
Это правильный способ использования ServiceBehavior или я должен быть просто удовлетворен OperationBehaviors для реализации этой функции?