Activator.CreateInstance

摘要:Activator.CreateInstance

常常在寫物件導向的東西~~
要把物件做到方便~~
就是要有一個好的底層~~
前幾天再寫一個東西~~
最近因為老了~~忘東忘西~~所以把它記在部落格上面好了~~
我寫了一個Function
功能是我丟一個物件以及查詢條件~然後回傳一個這個物件的集合回來(簡單來講就是一個簡單的ORM)
public List<Object> GetList(object myObj,string strWhere)
類似上訴條件~
那透過System.Reflection可輕易的取得丟進來的物件的Property,ClassName等此物件相關的資訊~~
但問題來了~~
我要做一個多筆資料的集合~~
那我在撰寫此物件時不可能知道丟進來的myObj是什麼物件~~
那當我再跑迴圈塞值的時候~~我一定需要去重新New這個物件~
但我絕對不可能寫
object o =new object~
因為這樣宣告object並不會有myObj的各項infomation~~
所以這個時候需要透過System.Reflection中的Activator.CreateInstance
寫成如下
object myClass = new object();

myClass = Activator.CreateInstance(myObj.GetType());

這樣一來myClass就完全擁有myObj的屬性了~~

那天找了老半天~~就是忘記CreateInstance~~老了老了~~

所已記在這邊好了