【发布时间】:2020-10-15 17:02:38
【问题描述】:
场景如下:
源对象:
公共类 personSrc
{
公共字符串名称 {get;放;}
公共字符串电话{get;放;}
公共字符串 HomeAddress {get;放;}
公共字符串 OfficeAddress {get;放;}
}
目标对象:
公开课 personDest
{
公共字符串名称 {get;放;}
公共字符串电话{get;放}
公共列表 地址 {get;放;}
}
公开课地址
{
公共字符串位置 {get;放;}
公共地址类型类型 {get;放;}
}
公共枚举地址类型 {办公室,家庭}
所以为了将地址成员从源映射到目标,我制作了这个自定义解析器:
公共类 CustomResolver : IValueResolver> { public List Resolve(personSrc source, personDest destination, List destMember, ResolutionContext context) { 列表 结果 = 新列表(); if(!String.IsNullOrEmpty(source.HomeAddress)) { 结果.add(新地址{ 位置 = source.HomeAddress, 类型 = addressType.Home }); } if(!String.IsNullOrEmpty(source.OfficeAddress)) { 结果.add(新地址{ 位置 = source.OfficeAddress, 类型 = addressType.Office }); } 返回结果; } }
我面临的问题是,当我定义我这样编写的探查器时,我似乎无法通过 personSrc 类:
CreateMap() .ForMember(dest => dest.name, opt => opt.MapFrom(src => src.name)) .ForMember(dest => dest.phone, opt => opt.MapFrom(src => src.phone)) .ForMember(dest => dest.addresses, opt => opt.MapFrom (src => src) // 这行不工作 .ForMember(dest => dest.addresses, opt => opt.MapFrom () // 这行也不行
很可能我的个人资料没有正确实施,但我似乎找不到正确实施的示例。
【问题讨论】:
标签: c# .net automapper automapper-9