我想我找到了问题所在。似乎,如果AutoMapper找到一个完全匹配的名称,那么就永远不会使用名称转换器。Bugger:(这是显示它的AutoMapper源代码:
private static MemberInfo FindTypeMember(IEnumerable<MemberInfo> modelProperties, IEnumerable<MethodInfo> getMethods, string nameToSearch, IMappingOptions mappingOptions)
{
MemberInfo pi = modelProperties.FirstOrDefault(prop => NameMatches(prop.Name, nameToSearch));
if (pi != null)
return pi;
...
pi = modelProperties.FirstOrDefault(prop => NameMatches(mappingOptions.SourceMemberNameTransformer(prop.Name), nameToSearch));
if (pi != null)
return pi;