Ich versuche, den umgekehrten Weg von dem zu gehen, was Sie normalerweise tun würden.Konvertieren von Basisobjekt in inherrited Objekt
Ich habe zwei POCO-Klassen A und B, wobei B von A inherrits
public class A
{
public int Foo { get; set; }
}
public class B : A
{
public int Bar { get; set; }
}
B ment als Erweiterung zu A mit zusätzlichen Informationen.
Ich beginne mit einer Instanz der Klasse mit A
A a = new A { Foo = 1 };
Und dann mag ich die Informationen in der Klasse A mit den Zusatzinformationen erweitern und die letzte Klasse B. bekommt ich jede Eigenschaft von Klasse-A-Karte könnte
A a = new A { Foo = 1 };
B b = new B { Foo = a.Foo, Bar = 2 };
Oder in Konstruktor
A a = new A { Foo = 1 };
B b = new B(a) { Bar = 2 }; // Mapping of value Foo is done in constructor of object B
: auf die Eigenschaft in der Klasse B, aber es viel Sinn für mich nicht machen
Das Ergebnis ist in jedem Fall eine manuelle Zuordnung der Werte von Objekt A nach B. Es muss einen klügeren Weg geben, dies zu tun ... irgendwelche Vorschläge?
Marc, ich mag deinen Vorschlag zur Reflexion. Der Gedanke kam mir in den Sinn, aber ich wollte keine Eigenschaft kopieren. Danke für den Link zu MiscUtil. Es hat mir wertvolle Zeit gespart. –