下面這個是筆者在以前的一個項目中用到的。當時是為了在導出excel報表的時侯,通過自定義特性,包含一些可配置的特性在裡面。具體的操作excel不是本文重點,本文不會多做說明。下面只寫個示例,簡單說明一下如何通過反射獲取自定義特性。示例只在類和屬性上使用了自定義特性。讀者可以按照實際的項目需求,合理使用自定義特性。
1、實現實體自定義特性,繼承自Attribute類
Code
/// <summary>
/// 自定義特性 屬性或者類可用 支持繼承
/// </summary>
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Class, Inherited = true)]
public class EnitityMappingAttribute : Attribute
{
private string tableName;
/// <summary>
/// 實體實際對應的表名
/// </summary>
public string TableName
{
get { return tableName; }
set { tableName = value; }
}
private string columnName;
/// <summary>
/// 中文列名
/// </summary>
public string ColumnName
{
get { return columnName; }
set { columnName = value; }
}
}
注釋中我已經寫的很清楚,自定義特性中的屬性一個是實體實際對應的數據庫表名,一個是對應的中文列名稱。
2、在實體中使用自定義特性
Code
/// <summary>
///