程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 如何利用C#自定義屬性(3)

如何利用C#自定義屬性(3)

編輯:關於C語言

列表D是個更簡單的屬性——“Hide”屬性。這個屬性不需要構造函數(使用默認的構建函數),也不儲存數據。因為這個屬性只是一個簡單的標志類型的屬性。

列表 D

Class Hide : System.Attribute
{
//This is a simple attribute, that only requires
// the default constructor.
}

從代碼中讀取屬性

讀取屬性並檢查其中的數據比使用屬性或創建屬性顯著地更加復雜。讀取屬性要求開發人員要對如何使用一個對象的反射信息有個基本了解。如果你不熟悉反射機制,可以閱讀“應用反射”系列文章。

假設我們正在查看一個類,我們想知道該類的那個propertIEs使用了Alias屬性以及都有哪些別名。列表E實現了這個功能。

列表 E

Private Dictionary<string, string> GetAliasListing(Type destinationType)
{
//Get all the propertIEs that are in the
// destination type.
PropertyInfo[] destinationProperties = destinationType.GetPropertIEs();
Dictionary<string, string> aliases = newDictionary<string, string>();
for each (PropertyInfo property in destinationPropertIEs)
{
//Get the alias attributes.
object[] aliasAttributes =
property. GetCustomAttributes( typeof(Alias), true);
//Loop through the alias attributes and
// add them to the dictionary.
foreach (object attribute in aliasAttributes)
foreach (string name in ((Alias)attribute).Names)
aliases.Add(name, property.Name);
//We also need to add the property name
// as an alias.
aliases.Add(property.Name, property.Name);
}
return aliases;
}

這段代碼最重要的地方是對GetCustomAttributes的調用以及循環遍歷屬性提取別名的地方。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved