C#属性不适用于方法

时间:2014-08-20 12:58:24

标签: c# custom-attributes

我有以下C#代码

 class Program
{
    [My]
    static void Main(string[] args)
    {
        SomeMethod();
    }

    [My]
    static void SomeMethod()
    {
        Console.WriteLine("1111");
    }
}


public class MyAttribute: Attribute
{
    public MyAttribute()
    {
        MessageBox.Show("enter");
    }
    ~MyAttribute()
    {
        MessageBox.Show("leave");
    }

}

属性我的仅适用于方法 Main (MyAttribute的构造函数在进入Main方法时执行,析构函数在离开时执行),但不适用于方法 SomeMethod

我需要这样的功能:在某些方法中执行代码的一部分(启动并终止进程),而不修改它们(我认为,属性可能是最好的决定)。

请帮助

1 个答案:

答案 0 :(得分:0)

您没有以正确的方式使用这些属性:

属性应指示类或类成员的属性,并且在大多数情况下由对象的使用者使用。

通常,属性与反射一起用于获取信息:

System.Attribute[] attrs = System.Attribute.GetCustomAttributes(t);