Mvc總結-特性(Attributes)
阿新 • • 發佈:2017-11-20
lte urn 存在 () 提示 ltr 篩選器 pre rdquo
1.定義
MSDN定義:公共語言運行時允許你添加類似關鍵字的描述聲明,叫做attributes, 它對程序中的元素進行標註,如類型、字段、方法和屬性等。Attributes和Microsoft .NET Framework文件的元數據保存在一起,可以用來向運行時描述你的代碼,或者在程序運行的時候影響應用程序的行為。具體使用示例如下:
[Obsolete] //此屬性為廢棄 public string Demo() { return ""; }
該方法前面標明[Obsolete]特性,調用該方法時則提示”方法已過時“提示。
2.應用場景
特性可與反射方法搭配,可返回引用該特性方法或者類的信息,用於描述展示引用對象信息。具體如下:
//自定義作者特性 public class Author : System.Attribute { public string Name { get; set; } //名稱 public double Version { get; set; } //版本 public Author(string _name, double _version) { this.Name = _name; this.Version = _version; } public string GetInfo() { return "名稱:" + Name + ",版本:" + Version; } } //引用特性類 [Author("HJX", 1.1)] class FirstClass { // ... } //利用反射方法,調用特性輸出類信息 public string Index() { //調用打印作者方法 string ExcultResult = PrintAuthorInfo(typeof(FirstClass)); returnExcultResult; } //具體反射方法實現 private static string PrintAuthorInfo(System.Type t) { string Result = ""; System.Attribute[] attrs = System.Attribute.GetCustomAttributes(t); foreach (System.Attribute attr in attrs) { if (attr is Author) { Author a = (Author)attr; Result = a.GetInfo(); } } return Result; }
總結:特性除了用於描述對象信息之外,還可以與Filter(篩選器)結合實現AOP編程,具體方法詳見AOP編程-Filter(篩選器)
Mvc總結-特性(Attributes)