Пользовательский атрибут не ударил
Я создал пользовательский атрибут, который записывает в консоль при ударе, но, похоже, не ударил. Это учебное пособие для Microsoft (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 ответ
Экземпляры атрибутов в классе не создаются, тогда вы создаете экземпляр класса. Только тогда вы их специально спрашиваете так:
var attrib = author1.GetType().GetCustomAttributes(false);
Этот код активирует ваш Console.WriteLine(string.Format("author {0} was just created", name));