3
我當前的任務需要注意不同對象類型之間的映射,所以我認識到非常好的AutoMapper庫。AutoMapper:使用接口屬性映射對象
到目前爲止容易處理,但這些不同的對象包含複雜的接口類型屬性。讓我告訴你一個代碼片段:
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; }
}
在我的情況是可能的類A
映射到B
類,反之亦然。從A
型
映射到B
是通過從ComplexA
類配置CreateMap<A, B>();
映射到ComplexB
類沒有問題拋出異常:
錯誤映射類型。
映射類型:
- 複雜了 - > ComplexB
- NamespaceOfComplexA.ComplexA - > NamespaceOfComplexB.ComplexB
類型地圖配置:
- 複雜了 - > ComplexB
- NamespaceOfComplexA.ComplexA - > NamespaceOfComplexB.ComplexB
物業:
- ComplexProperty
一個可能的解決方案我已經在這裏找到了計算器可能是一個配置如下:
CreateMap<A, IInterface>().As<B>();
CreateMap<B, IInterface>().As<A>();
但在我的情況下,它不是工作國王。
有什麼建議嗎?