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>();
但在我的情况下,它不是工作国王。
有什么建议吗?