meine aktuelle Aufgabe muss auf die Zuordnung zwischen verschiedenen Objekttypen achten und so erkannte ich die sehr schöne AutoMapper-Bibliothek.AutoMapper: Mapping Objekte mit Interface-Eigenschaften
Bisher einfach zu handhaben, aber diese verschiedenen Objekte enthalten komplexe Eigenschaften des Schnittstellentyps. Lassen Sie mich Ihnen ein Code-Snippet:
public inferface IInterface
{
string TextProperty { get; set;}
}
public class A : IInterface
{
string TextProperty { get; set; }
}
public class B : IInterface
{
string TextProperty { get; set; }
}
public inferface IComplexInterface
{
IInterface ComplexProperty { get; set; }
}
public class ComplexA : IComplexInterface
{
IInterface ComplexProperty { get; set; }
}
public class ComplexB : IComplexInterface
{
IInterface ComplexProperty { get; set; }
}
In meinem Fall ist es möglich, dass Klasse A
Klasse zugeordnet ist B
und umgekehrt.
Mapping von Typ A
-B
ist kein Problem von CreateMap<A, B>();
Mapping von Klasse ComplexA
Klasse ComplexB
löst eine Ausnahme konfigurieren:
Fehler-Mapping-Typen.
Mapping-Typen:
- complexa -> ComplexB
- NamespaceOfComplexA.ComplexA -> NamespaceOfComplexB.ComplexB
Typ Map-Konfiguration:
- complexa -> ComplexB
- NamespaceOfComplexA.ComplexA -> NamespaceOfComplexB.ComplexB
Eigentum:
- ComplexProperty
Eine mögliche Lösung, die ich auf Stackoverflow bereits hier könnte eine Konfiguration wie folgt:
CreateMap<A, IInterface>().As<B>();
CreateMap<B, IInterface>().As<A>();
Aber in meinem Fall ist es nicht wor König.
Irgendwelche Vorschläge?