2012-09-18 126 views
0

想象我有一個類,像這樣:轉換爲擴展分類

public class MyClass { 
    public string MyString { get;set; } 
} 

然後擴展該像這樣:

public class MyExtender : MyClass { 
    public string MyString2 { get;set; } 
} 

我怎麼能轉換MyClass的進入伸出一個,我嘗試:

item = (MyExtender)classitem; 

但這沒有奏效。

回答

1

到底,而不是尋找一種方法來轉換它,我發現了一種所有屬性複製到擴展的類來代替:

MyClass orig = GetItem(x); 
MyExtender copy = new MyExtender(); 
PropertyInfo[] infos = typeof(MyClass).GetProperties(); 
foreach (PropertyInfo info in infos) 
{ 
    info.SetValue(copy, info.GetValue(orig, null), null); 
}