2009-12-20 7 views
53

Me gustaría saber si puedo definir atributos de ensamblaje personalizados. Los atributos existentes se definen de la siguiente manera:Atributos de ensamblaje personalizado

[assembly: AssemblyTitle("MyApplication")] 
[assembly: AssemblyDescription("This application is a sample application.")] 
[assembly: AssemblyCopyright("Copyright © MyCompany 2009")] 

¿Hay alguna manera de hacer lo siguiente:

[assembly: MyCustomAssemblyAttribute("Hello World! This is a custom attribute.")] 

Respuesta

77

Sí se puede. Hacemos este tipo de cosas.

[AttributeUsage(AttributeTargets.Assembly)] 
public class MyCustomAttribute : Attribute { 
    string someText; 
    public MyCustomAttribute() : this(string.Empty) {} 
    public MyCustomAttribute(string txt) { someText = txt; } 
    ... 
} 

Para leer utilice este tipo de linq stmt.

var attributes = assembly 
    .GetCustomAttributes(typeof(MyCustomAttribute), false) 
    .Cast<MyCustomAttribute>(); 
8

Sí, utilizar AttributeTargets.Assembly:

[AttributeUsage(AttributeTargets.Assembly)] 
public class AssemblyAttribute : Attribute { ... } 
Cuestiones relacionadas