So konvertieren Ich habe zwei benutzerdefinierte komplexe Typen wie folgt aus (in diesem Beispiel stark vereinfacht):Wie eine benutzerdefinierte komplexe Typ in einen anderen benutzerdefinierten komplexen Typ
public class PendingProduct
{
public string Name { get; set; }
public string Description { get; set; }
public int ColorCount { get; set; }
}
Sagen wir, ich dieses Objekt muss wissen, wie sich zu konvertieren auf eine andere Art: So
public class Product
{
public string Name { get; set; }
public string Description { get; set; }
public ProductColors Colors { get; set;}
}
, wenn ich eine Methode aufrufen PendingProduct zu Produkt umzuwandeln, werde ich einige benutzerdefinierte Logik ausführen, die „Colorcount“ Anzahl der ProductColor Objekte auf die Produktklasse hinzufügt. Das ist völlig vereinfacht, aber die Architektur der Klasse ist hier wirklich irrelevant.
Was meine Hauptfrage ist, ist dies:
Was ist die beste Praxis-Methode zu verwenden, um die Umwandlung eines komplexen Typs in einem anderen komplexen Typ zu implementieren, wenn die Eigenschaften der Objekte unterscheiden?
In der realen Welt sind die Eigenschaften sehr unterschiedlich, und ich werde einige benutzerdefinierte Logik zur Karte schreiben, was ich von Objekt A benötigen B. schreiben konnte ich
Offensichtlich Objekt nur eine Funktion, die einen Eingabeparameter von Objekt A und gibt Objekt B zurück, aber ich suche nach einer "Best Practice" -Methode. Kommt IConvertible hier ins Spiel? Gibt es etwas mehr OOP-ähnliches, das ich nutzen kann, anstatt nur eine Funktion zu schreiben, um das zu tun, was ich will?
Objekt A soll immer wissen, wie sie konvertieren B.
EDIT Objekt Als Randnotiz, in der realen Welt, Objekt A und Objekt B sind beide Entity Framework 4 Einheiten. Ich möchte ein "Pending Product" nehmen, es in eine neue Product-Entity umwandeln, es an den Datenkontext anhängen und speichern.