C# AutoMappingException获取属性名
我有一个这样的自定义适配器模式C# AutoMappingException获取属性名,c#,automapper-3,C#,Automapper 3,我有一个这样的自定义适配器模式 public interface IFoo { byte[] Content{get; set;} } public class FooDTO : IFoo { byte[] Content {get; set;} } public FooAdapter : IFoo { Picture _picture; public FooAdapter(Picture picture) { this._pictu
public interface IFoo
{
byte[] Content{get; set;}
}
public class FooDTO : IFoo
{
byte[] Content {get; set;}
}
public FooAdapter : IFoo
{
Picture _picture;
public FooAdapter(Picture picture)
{
this._picture = picture;
}
public byte[] Content => this._picture.GetContent();
}
然后我有一个扩展方法将我的实体转换为dto,如下所示
public static FooDTO ToDTO(this IFoo getter)
{
return AutoMapperExtensions.Map<IFoo, FooDTO >(getter);
}
此适配器在同一接口IFoo之间进行适配器转换,偶尔会出现AutomapperMapping异常
映射类型:
FooAdapter->Byte[]
MyNamespace.FooAdapter->System.Byte[]
目标路径:
食品目录
源值:MyNamespace.FooAdapter
所有这些信息都很好,但如何获取引发错误的属性的属性名?如果有人想知道您可以通过错误上下文访问成员名
catch(AutoMapperMappingException mappingException)
{
BuildNewError(mappingException.Context.MemberName);
}
只是一个简单的问题,为什么要尝试映射已经有getter的属性的值,即返回值的属性?@DOMZE此适配器模式有多个好处。1.这样,DTO和实体之间的属性名称就不必相同。2.这在映射之间提供了一个附加层,因此您可以添加逻辑,例如,您可能不想映射您的Id,因为它们是从服务器设置的,如果有人修改了you's dto的Id etcMy bad,我误读了目标不是您的实体,这可能会导致错误-对不起,是的,这是误导我编辑了这个问题,让它更有意义