自定义属性未被点击

时间:2012-03-16 10:48:48

标签: c#-4.0 aop custom-attributes custom-attribute

我已经创建了一个自定义属性,当它被命中时会写入控制台,但它似乎没有被击中。这是微软教程(http://msdn.microsoft.com/en-us/library/sw480ze8.aspx)并且正在2010年运行.net 4.我猜我一定做错了,但是我看不出它是什么。有人可以帮忙吗?

这是属性,其代码永远不会被命中

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)]
public class Author : Attribute
{
    private string _name;
    private double _version;

    public Author(string name)
    {
        Console.WriteLine(string.Format("author {0} was just created", name));

        _name = name;
        _version = 1.0;
    }
}

这是使用它的类 - 它成功地在构造函数中写出代码:

/// <summary>
/// TODO: Update summary.
/// </summary>
[Author("P. Ackerman")]
public class Ackerman
{
    public Ackerman()
    {
        Console.WriteLine("I created Ackerman.");
    }
}

这是调用它的控制台应用程序,并成功打印出新的Ackerman()构造函数中的代码:

    static void Main(string[] args)
    {
        Ackerman author1 = new Ackerman();
        Console.ReadLine();
    }

谢谢!

1 个答案:

答案 0 :(得分:3)

创建类的属性实例,然后创建类的实例。只有这样你才会特别要求他们:

var attrib = author1.GetType().GetCustomAttributes(false);

此代码会触发您的Console.WriteLine(string.Format("author {0} was just created", name));