0

次のようなクラスがあるとします。

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

そして、私はこれを次のように拡張します:

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

MyClass を拡張されたものに変換するにはどうすればよいですか、私は試しました:

item = (MyExtender)classitem;

しかし、これはうまくいきませんでした。

4

1 に答える 1

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);
}       
于 2012-09-18T13:38:51.183 に答える