Atributos de ensamblaje personalizado

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

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

¿Hay alguna manera de que pueda hacer lo siguiente?

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

Sí tu puedes. 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, use este tipo de linq stmt.

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

Sí, use AttributeTargets.Assembly:

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