J'essaie d'aller dans le sens inverse de ce que vous feriez normalement.Conversion d'un objet de base en un objet hérité
J'ai deux des classes POCO A et B où B inherrits de A
public class A
{
public int Foo { get; set; }
}
public class B : A
{
public int Bar { get; set; }
}
B est comme extention ment à A avec des informations supplémentaires.
Je commence par avoir une instance de la classe A
A a = new A { Foo = 1 };
Et puis je souhaite étendre les informations en classe A avec les informations supplémentaires et obtenir la dernière classe B. Je pouvais carte tous les biens de la classe A à la propriété dans la classe B, mais il ne fait pas me beaucoup sence:
A a = new A { Foo = 1 };
B b = new B { Foo = a.Foo, Bar = 2 };
Ou dans le constructeur
A a = new A { Foo = 1 };
B b = new B(a) { Bar = 2 }; // Mapping of value Foo is done in constructor of object B
Le résultat est dans le cas d'une cartographie manuelle des valeurs de l'objet A à B. Il doit y avoir une façon plus intelligente de faire cela ... des suggestions?
Marc, j'aime ta suggestion d'utiliser la réflexion. La pensée a traversé mon esprit mais je ne voulais pas coder une méthode de copie de propriété. Merci pour le lien vers MiscUtil. Cela m'a fait gagner un temps précieux. –