如何不显式指定名称自动匹配的成员?
How not to explicitly specify members for which the name automatically match up?
我正在使用 AutoMapper 9.0,在下面的示例中,我将 Person
映射到 People
对象。
因为 1 个成员因人而异(Person 有 Sfx 而 People 有 Suffix),我必须专门映射其余部分否则会自动匹配的属性。
有没有办法不指定它们但仍然映射它们?
configurationExpression.CreateMap<JsonRequest, XmlRequest>()
.ForMember(
dest => dest.People,
opt => opt.MapFrom(src => new People
{
FirstName = src.Person.FirstName,
MiddleName = src.Person.MiddleName,
LastName = src.Person.LastName,
Suffix = src.Person.Sfx
}));
检查 documentation,您应该能够通过为 OutterClass
和 InnerClass
定义单独的映射来实现此目的:
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<OuterSource, OuterDest>();
cfg.CreateMap<InnerSource, InnerDest>();
});
你试过这样的东西吗?
configurationExpression.CreateMap<Person, People>()
.ForMember(dest => dest.Suffix, opt => opt.MapFrom(src => src.sfx))
.ReverseMap();
configurationExpression.CreateMap<JsonRequest, XmlRequest>()
.ForMember(dest => dest.People, opt => opt.MapFrom(src => src.Person))
.ReverseMap();
我正在使用 AutoMapper 9.0,在下面的示例中,我将 Person
映射到 People
对象。
因为 1 个成员因人而异(Person 有 Sfx 而 People 有 Suffix),我必须专门映射其余部分否则会自动匹配的属性。
有没有办法不指定它们但仍然映射它们?
configurationExpression.CreateMap<JsonRequest, XmlRequest>()
.ForMember(
dest => dest.People,
opt => opt.MapFrom(src => new People
{
FirstName = src.Person.FirstName,
MiddleName = src.Person.MiddleName,
LastName = src.Person.LastName,
Suffix = src.Person.Sfx
}));
检查 documentation,您应该能够通过为 OutterClass
和 InnerClass
定义单独的映射来实现此目的:
var config = new MapperConfiguration(cfg => { cfg.CreateMap<OuterSource, OuterDest>(); cfg.CreateMap<InnerSource, InnerDest>(); });
你试过这样的东西吗?
configurationExpression.CreateMap<Person, People>()
.ForMember(dest => dest.Suffix, opt => opt.MapFrom(src => src.sfx))
.ReverseMap();
configurationExpression.CreateMap<JsonRequest, XmlRequest>()
.ForMember(dest => dest.People, opt => opt.MapFrom(src => src.Person))
.ReverseMap();