1

私は.NET 2.0に取り組んでいます。残念ながら、私は新しいバージョンを使用できませんでした。単純な値を提供する独自の属性を作成しようとしています。

[AttributeUsage(AttributeTargets.All)]
public class testAttribute : Attribute
{
    int b;
    public testAttribute(int a)
    {
        b = a;
        Console.WriteLine("Creating Attribute");
    }
    public testAttribute()
    {
        b = 5;
        Console.WriteLine("Creating Attribute");
    }
}

public class MyTestClass
{
    [testAttribute]
    public MyTestClass()
    {
        int a = 0;
        Console.WriteLine("creating serializer 2");
    }

    [testAttribute(2)]
    public void foo(){
        //Type t = this.GetType();
        //testAttribute[] t2 = (testAttribute[])t.GetCustomAttributes(typeof(testAttribute), true);
        Console.WriteLine("calling foo");

        object[] attr = typeof(MyTestClass).GetCustomAttributes(true);
        int a = 5;
    }
}

しかし、それはうまくいかないようです。msdn [ http://msdn.microsoft.com/en-us/library/a4a92379%28v=vs.80%29.aspx ]からその例を見つけましたが、私にとってこれは非常に似ています。

私もこれを見つけました:メソッドの属性は機能しませんが、これは私の問題ではないと思います。ご覧のとおり、BrokenGlass の推奨事項を試してみましたが、属性がないことを意味する次元 0 の配列を取得しました。

助言がありますか?よろしくチョンプ

4

1 に答える 1

2

GetCustomAttributesタイプではなく、メソッドを呼び出す必要があります。

object[] attr = typeof(MyTestClass).GetMethod("foo").GetCustomAttributes(true);
于 2013-03-21T19:06:50.383 に答える