【发布时间】:2018-05-29 21:17:20
【问题描述】:
我有一个映射,我目前使用MapFrom 并且一切都按预期工作。
我试图用ResolveUsing 替换MapFrom,但我发现我的resolve 函数根本没有被调用。就好像代码不存在(在构造函数中尝试带有断点的类形式时,它没有被命中)。
// This works as expected
CreateMap<Contact, ContactListViewModel>()
.ForMember(dest => dest.FirstName, map =>
map.MapFrom(s => s.RelationshipTypeId == Relationship.SELF ? s.Person.FirstName : s.FirstName))
// This doesnt. Resolver never invoked
CreateMap<Contact, ContactListViewModel>()
.ForMember(dest => dest.FirstName, opt => opt.ResolveUsing<CustomResolver>());
// Example resolver
public class CustomResolver : IValueResolver<object, object, string>
{
public CustomResolver()
{
// never called
}
public string Resolve(object source, object destination, string member, ResolutionContext context)
{
return ... // never invoked
}
}
这看起来很基本,我确实有其他映射可以成功使用 ResolveUsing。关于如何进行调试并确定为什么我的映射被忽略的任何想法?
【问题讨论】:
标签: c# automapper