Supposons que vous avez 2 classes comme ceci:Y at-il quelque chose de construit dans .NET/C# pour copier des valeurs entre objets?
public class ClassA {
public int X { get; set; }
public int Y { get; set; }
public int Other { get; set; }
}
public class ClassB {
public int X { get; set; }
public int Y { get; set; }
public int Nope { get; set; }
}
Maintenant, imaginez que vous avez une instance de chaque classe et que vous voulez copier les valeurs d'un en b. Y a-t-il quelque chose comme MemberwiseClone qui copiera les valeurs où les noms de propriétés correspondent (et bien sûr est tolérant aux pannes - on a un get, et l'autre un ensemble, etc.)?
var a = new ClassA(); var b = new classB();
a.CopyTo(b); // ??
Quelque chose comme ça est assez facile dans une langue comme JavaScript.
Je suppose que la réponse est non, mais il y a peut-être aussi une alternative simple. J'ai écrit une bibliothèque de réflexion pour ce faire, mais si elle est intégrée à C#/.NET à un niveau inférieur, elle serait probablement plus efficace (et pourquoi réinventer la roue).
jetez un oeil à AutoMapper: http://lostechies.com/jimmybogard/2009/01/23/automapper-the-object-object-mapper/ –