c# CustomAttribute不能工作

本文关键字:工作 不能 CustomAttribute | 更新日期: 2023-09-27 18:05:16

我正在开发。net 2.0。不幸的是,我不能使用更新的版本。我试着写我自己的Attribute,提供一个简单的值。

[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的数组,这意味着没有属性。

有什么建议吗?问候Chomp

c# CustomAttribute不能工作

您必须为方法而不是类型调用GetCustomAttributes

object[] attr = typeof(MyTestClass).GetMethod("foo").GetCustomAttributes(true);