///
/// 提供自定義表特性
///
[attributeusage(attributetargets.class)]
class customtableattribute:attribute
public customtableattribute(string tablename)
: this(tablename, false, null)
public customtableattribute(string tablename, bool issubtable)
: this(tablename, issubtable, null)
public string tablename }
public string parenttablename }
public bool issubtable }
}///
/// 提供自定義列特性
///
[attributeusage(attributetargets.field|attributetargets.property)]
class customcolumnattribute : attribute
public customcolumnattribute(string columnname)
: this(columnname, false, false)
public customcolumnattribute(string columnname, bool ispk)
: this(columnname, ispk,false)
public string columnname }
public bool ispk }
public bool isidentity }
} ///
/// 提供基礎列抽象型別
///
class basecolumn
set }
public bool ispk set }
public bool isidentity set }
public type systype set }
public string coumnname set }
public dbtype datatype set }
public basecolumn(string columnname,object value,type systype, dbtype datatype,bool ispk,bool isidentity)
public basecolumn(string columnname)
: this(columnname, null,null, dbtype.string,false,false)
public basecolumn(string columnname, object value)
: this(columnname, value, null, dbtype.string, false, false)
public basecolumn(string columnname, object value, type systype)
: this(columnname, value, systype, dbtype.string, false, false)
public basecolumn(string columnname, object value, type systype, dbtype datatype)
: this(columnname,value, systype, datatype, false, false)
public basecolumn(string columnname, object value, type systype, dbtype datatype, bool ispk)
: this(columnname,value, systype, datatype, ispk, false)
}///
/// 提供資料訪問操作的基本實現
///
///
/// 示例資料表物件:**可由**生成器生成
///
[customtable("demotable")]
class datatable:basetable
private string _column1;
private string _column2;
private datetime _column3;
[customcolumn("col_1",true,false)]
public string column1
set
}[customcolumn("col_2")]
public string column2
set
}[customcolumn("col_3")]
public datetime column3
set
}
}class program
{///
/// 執行程序
///
///
利用反射實現自定義比較器
解決方案 優化空間 問題背景 需求 從第三方獲取資料列表,傳到前台進行展示,目前前台需要可以根據任意字段進行排序 公升序和降序 但是第三方介面不支援排序功能,所以需要手動實現資料的排序。問題分析 方案一 資料入庫 方案二 根據字段進行排序 解決方案 思路資料列表的排序主要是針對欄位的比較器進行的,那...
利用特性給方法實現自定義的功能
最近,專案經理要求我做乙個記錄日誌的功能,就是當系統的當前使用者進行增刪改或者上傳檔案操作的時候,進行對操作人,操作,操作時間的記錄。他的建議是用特性去實現該功能。attribute的基本概念 首先,我們肯定attribute是乙個類,下面是msdn文件對它的描述 公共語言執行時允許你新增類似關鍵字...
自定義註解和反射例項
自定義註解和反射例項 author 這個例子是說實體和資料庫對應表的對映,可以在實體上面使用註解。public class tannotationclass 下面是備註接的類 class person 下面是自定義註解 target elementtype.field 註解是給屬性使用的 reten...