1

ハンドラーのメソッドにアタッチするカスタム属性をいくつか作成しました。カスタム属性は、「RequiresAuthenticationAttribute」などの単なる「タガー」ではありません。簡単な例:

[EnforceParam("Account")]

EnforceParam で注釈が付けられたメソッドに対して呼び出されるインターセプターでは、値「アカウント」にアクセスしたいと考えています。そのために現在行っていることは次のとおりです。

public override bool BeforeExecute(IOperation operation)
{
    ReflectionBasedMethod method = (ReflectionBasedMethod)((MethodBasedOperation)operation).Method;
    MethodInfo methodInfo = method.MethodInfo;

これを機能させるには、「メソッド」プロパティを OpenRasta の ReflectionBasedMethod に追加する必要がありました。

OpenRasta をハッキングせずに同じことを達成できますか (私は 2.0 を使用しています)?

4

1 に答える 1

4

それは間違った質問です。あなたが探しているのは単純です:

var attribute = operation.FindAttribute<EnforceParamAttribute>()

ダウンキャストはサポートされておらず、操作は意図的に操作とその入力のみを反映する必要があります。ダウンキャストしないでください。コード破損し、IMethod APIを使用する1つのバージョンを超えてコードが機能することは保証されません。このバージョンは、ある時点で書き換え/削除される予定です。

于 2011-10-03T11:42:47.227 に答える