Blick auf Bibliotheken, die dies für Sie tun:
Mein persönlicher leichter Favorit ist implizite Konvertierung ops zu verwenden. Ich muss hinzufügen, dass ich dies nur verwende, wenn ich vorhabe, die "Leimschicht" nach einem zukünftigen Refactoring zu entfernen. Dies kann als langfristige Lösung in einer Produktionsumgebung nicht gut sein (weil die Selbstverständlichkeit es leicht macht, sie zu verpassen).
public class MyPoco
{
public static implicit operator MyPoco(MyDTO o)
{
if (o == null) return null;
return new MyPoco {
SomeAmount = Convert.ToDecimal(o.SomeAmount),
SomeBool = Equals("Y", o.SomeBool ),
Sub1 = o.Sub1,
Sub2 = o.Sub2,
};
}
public static implicit operator MyDTO(MyPoco o)
{
if (o == null) return null;
return new MyDTO {
SomeAmount = o.SomeAmount.ToString(),
SomeBool = o.SomeBool ? "Y":"N",
Sub1 = o.Sub1,
Sub2 = o.Sub2,
};
}
public decimal SomeAmount { get; set; }
public bool SomeBool { get; set; }
public MySubPoco1 Sub1 { get; set; }
public MySubPoco2 Sub2 { get; set; }
}
Lustig, vernachlässigen Sie, Sprache/Plattform zu erwähnen. Von der Art, wie Sie Dinge nähern, würde ich ** Java ** erraten, aber die Namensgebung zu sehen, würde ich C# – sehe
@sehe C# in den Tags –
Korrigieren Sie mich, wenn ich falsch liege, aber ist kein DTO und POCO auch fast? – doogle