このサービスのすべての操作で同じ 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 に満足してこの機能を実装する必要がありますか?