Csharp/C#教程:使用AutoMapper将对象的属性映射到字符串分享


使用AutoMapper将对象的属性映射到字符串

我有以下型号:

public class Tag { public int Id { get; set; } public string Name { get; set; } } 

我希望能够使用AutoMapper将Tag类型的Name属性映射到我的一个viewmodel中的字符串属性。

我已经创建了一个自定义解析器来尝试使用以下代码来处理此映射:

 public class TagToStringResolver : ValueResolver { protected override string ResolveCore(Tag source) { return source.Name ?? string.Empty; } } 

我使用以下代码进行映射:

 Mapper.CreateMap() .ForMember(d => d, o => o.ResolveUsing()); 

当我运行应用程序时,我收到错误:

仅对类型上的顶级单个成员支持成员的自定义配置。

我究竟做错了什么?

这是因为您尝试映射到实际目标类型而不是目标类型的属性。 你可以实现你想要的:

 Mapper.CreateMap().ConvertUsing(source => source.Name ?? string.Empty); 

虽然在Tag类上覆盖ToString会简单得多。

ForMember表示您为要在类型之间进行映射的成员提供映射。 相反,使用这个:

 Mapper.CreateMap().ConvertUsing(); 

和转换器是

上述就是C#学习教程:使用AutoMapper将对象的属性映射到字符串分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)

 public class TagToStringConverter : ITypeConverter { public string Convert(ResolutionContext context) { return (context.SourceValue as Tag).Name ?? string.Empty; } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/1012248.html

(0)
Shell脚本Shell脚本
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐