2010-12-03 14 views
4

C#のドキュメントによれば、カスタム属性をパラメータに割り当てることができます。正確な文は次のとおりです。「ターゲット要素は、アセンブリ、クラス、コンストラクタ、デリゲート、列挙型、イベント、フィールド、インターフェイス、メソッド、移植可能な実行可能ファイルモジュール、パラメータ、プロパティ、戻り値、構造体、それで、このようなことをするための正しい構文は何でしょうか:C#:メソッドパラメータに属性を割り当てる方法はありますか?

private void SomeMethod 
([CustomAttribute(Blah = "blah1")] string actualParam, 
[CustomAttribute(Blah = "blah2")] DateTime anotherParam 
) 

{ 
// method's body 
} 

または完全に何か不足していますか?

答えて

8

これはあなたの言ったとおりです。パラメータについては、あなたが何かやる:戻り値の

void SomeMethod([MarshalAs(UnmanagedType.FunctionPtr)] Action del); 

を、あなたは何だろう:

[return: MyAttribute(Param1 = "Value1")] 
int Method() 

は同様に、モジュール、およびアセンブリの[module: MyAttribute][assembly: MyAttribute]があります。

+0

私はそれもまた気づきました。ありがとうございました! :) –

1

心配しないでください。私が質問したのとまったく同じ構文で実際には可能です。属性クラスには、AttributeTargets.Parameterという名前のパラメータが必要です。申し訳ありません、それは起こります:)

関連する問題