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,我误读了目标不是您的实体,这可能会导致错误-对不起,是的,这是误导我编辑了这个问题,让它更有意义