我有以下模型:
public class Tag
{
public int Id { get; set; }
public string Name { get; set; }
}
我希望能够使用 AutoMapper 将 Tag
类型的 Name
属性映射到我的一个 View 模型中的字符串属性。
我创建了一个自定义解析器来尝试使用以下代码处理此映射:
public class TagToStringResolver : ValueResolver<Tag, string>
{
protected override string ResolveCore(Tag source)
{
return source.Name ?? string.Empty;
}
}
我正在使用以下代码进行映射:
Mapper.CreateMap<Tag, String>()
.ForMember(d => d, o => o.ResolveUsing<TagToStringResolver>());
当我运行应用程序时出现错误:
Custom configuration for members is only supported for top-level individual members on a type.
我做错了什么?
最佳答案
这是因为您试图映射到实际目标类型而不是目标类型的属性。您可以通过以下方式实现您想要的:
Mapper.CreateMap<Tag, string>().ConvertUsing(source => source.Name ?? string.Empty);
尽管仅在 Tag 类上覆盖 ToString 会简单得多。
关于c# - 使用 AutoMapper 将对象的属性映射到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11189729/