2009-12-20 84 views
53

我想知道我是否可以定義自定義程序集屬性。現有屬性,按以下方式確定:自定義程序集屬性

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

有沒有一種方法可以讓我做到以下幾點:

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

回答

77

當然可以。我們做這種事情。

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

要閱讀使用這種linq stmt。

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

是,使用AttributeTargets.Assembly:

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