2008年11月14日 星期五

Create Instance By Type

本來以為這應該是 Reflection 裡的功能,沒想到找了半天找不到

原來兇手是 Activator 物件

System.Type type = this.GetType();
TSource vm = (TSource)System.Activator.CreateInstance(type, new object[] { this.UserID });
 
//TSource vm = new TSource(this.UserID);
 
foreach(DataTable dt in view.Tables)
{
    DataTable dtDest = vm.view.Tables[dt.TableName];
 
    foreach (DataRow dr in dt.Rows)
    {
        if (dr.RowState == DataRowState.Unchanged) continue;
        DataRow drDest = dtDest.NewRow();
        drDest.FillWith(dr);
        dtDest.Rows.Add(drDest);
    }
}
 
return vm;

上面的 Code 主要是要在 父類別中 Create 出子類別的 Instance

還是有更簡單的辦法呀??

沒有留言: