2

私はこのカスタム属性を持っています:

[AttributeUsage(AttributeTargets.Method)]
public class MyAttribute : Attribute
{
    public MyAttribute()
    {
         // I want to get the Test type in here. 
         // it could be any kind of type that one of its members uses this attribute. 
    }
}

どこかで MyAtrribute を使用しています。

public class Test
{
    [MyAttribute]
    public void MyMethod()
    {
        //method body
    }

    public string Name{get;set;}

    public string LastName{get;set;}
}

私の質問は、MyAttribute のコンストラクターからテスト クラスの他のメンバーを取得できますか?

助けてくれてありがとう!

4

3 に答える 3

0

いいえ、あなたがすることはできません。属性のコンストラクターは、メソッドを装飾する型を認識できない可能性があります。

于 2013-07-26T20:35:42.637 に答える
0

いいえ、属性のコンストラクターでコンテキスト情報を取得することはできません。

属性の有効期間も、関連付けられているアイテムとは大きく異なります (つまり、誰かが実際に属性を要求するまで作成されません)。

他のクラス メンバーに関するロジックを持つより良い場所は、クラスのメンバーが指定された属性を持っているかどうかをチェックするコードです (その時点で、コードにはクラス/メンバーに関する情報があるため)。

于 2013-07-26T20:36:05.463 に答える