我想检查ResolveUsing使用泛型后属性是否仍然为空IMemberValueResolver。我尝试过,但它在集合AfterMap之后不适用,所以我认为这可能更合适。ResolveUsingAddTransform
基于现有的 AutoMapper 单元测试,我可以看到可以覆盖目标属性:
p.CreateMap<Source, Dest>()
.ForMember(d => d.Value, opt => opt.AddTransform(d => d + ", seriously"));
Run Code Online (Sandbox Code Playgroud)
是否可以访问内部的源对象AddTransform以从该对象中提取值来覆盖目标?
这就是我基本上想做的:
cfg.CreateMap<Foo, Bar>()
.ForMember(d => d.Description, opts =>
{
opts.ResolveUsing<LocalizeResolver, ResourceType>(src => src.ResourceType);
opts.AddTransform(d => "whatever"); // src.Description??
})
.AfterMap((src, dst) => {
// this never works
if (string.IsNullOrWhiteSpace(dst.Description))
{
dst.Description = src.Description;
}
});
Run Code Online (Sandbox Code Playgroud)