【发布时间】:2019-10-21 18:30:31
【问题描述】:
如何在 Automapper 9.0 中结合使用基于属性的成员忽略(例如 [IgnoreMap])和 MemberList.Source 选项? IgnoreMap 属性似乎被...忽略 - 以下示例抛出:
public class Source
{
public string PropertyA { get; set; }
[IgnoreMap]
public string IgnoredProperty { get; set; }
}
public class Destination
{
public string PropertyA { get; set; }
public string PropertyC { get; set; }
}
public class MyProfile : Profile
{
public MyProfile()
{
CreateMap<Source, Destination>(MemberList.Source);
}
}
使用MapperConfiguration.AssertConfigurationIsValid() 进行配置时。它抛出 AssertConfigurationIsValid 就好像[IgnoreMap] 不存在一样:
找到未映射的成员。查看下面的类型和成员。添加一个 自定义映射表达式,忽略,添加自定义解析器,或修改 源/目标类型对于没有匹配的构造函数,添加一个无参数 ctor,添加可选参数,或映射所有构造函数参数 ==================================================== ================ 来源 -> 目的地(来源成员列表) Mapping.Source -> Mapping.Destination(源成员列表)
未映射的属性:IgnoredProperty
我也试过[Ignore][NotMapped]属性,但是结果是一样的。
【问题讨论】:
-
[IgnoreMap]不适用于源代码验证。 -
@LucianBargaoanu 是记录在案的行为,如果是,他们是否指定了替代方案?
-
你必须在代码中做,没有属性。当然,您始终可以自己实现。
标签: c# automapper