Więc mam dwa niestandardowe typy złożone tak (uproszczony dla tego przykładu):Jak przekonwertować niestandardowy typ złożony do innego niestandardowego typu złożonego
public class PendingProduct
{
public string Name { get; set; }
public string Description { get; set; }
public int ColorCount { get; set; }
}
Powiedzmy, że trzeba ten obiekt wiedzieć, jak przekształcić się do innego rodzaju:
public class Product
{
public string Name { get; set; }
public string Description { get; set; }
public ProductColors Colors { get; set;}
}
Więc gdy zgłoszę metodę konwersji PendingProduct do produktu, będę wykonywać jakąś niestandardową logikę, która dodaje „ColorCount” liczba ProductColor obiektów do klasy produktu. Jest to całkowicie uproszczone, ale architektura klasy jest tutaj naprawdę nieistotna.
Co moje główne pytanie brzmi, czy to jest:
Jaka jest metoda najlepsza praktyka wykorzystać do realizacji konwersji jednego typu złożonego do innego typu złożonego, gdy właściwości obiektów różnią?
W rzeczywistym świecie, właściwości są bardzo różne i będę pisać jakąś niestandardową logikę do mapowania co muszę Address A do obiektu B.
Oczywiście mogę tylko napisać funkcję, która przyjmuje parametr wejściowy obiektu A i zwraca obiekt B, ale szukam bardziej "najlepszej praktyki". Czy IConvertible wchodzi tutaj w grę? Czy jest coś bardziej podobnego do OOP-a, że mogę skorzystać, a nie tylko napisać funkcję, aby zrobić to, co chcę?
Przedmiot A powinien zawsze wiedzieć, jak przekształcić się do obiektu B.
EDIT: Na marginesie, w realnym świecie, obiekt A i B są zarówno obiektu Entity Framework 4 podmioty. Chcę wziąć "Produkt oczekujący", przekształcić go w nowy produkt, dołączyć do kontekstu danych i zapisać.