如何将自定义配置(例如RecognizePostfixes)添加到AutoMapper以便从Dictionary <string,object>或ExpandoObject进行映射?

时间:2019-11-13 23:24:56

标签: c# dictionary configuration automapper expandoobject

我正在使用AutoMapper将Dictionary<string, object>映射到类Bar,其中源密钥具有我使用RecognizePostfixes在AutoMapper中配置的后缀:

var mapper = new Mapper(new MapperConfiguration(cfg =>
{
    cfg.RecognizePostfixes("Postfix");
}));

var foo = new Dictionary<string, object> {{"XPostfix", 1}, {"YPostfix", 2}};
var bar = mapper.Map<Bar>(foo);

Bar定义为:

class Bar
{
    public int X;
    public int Y;
}

不幸的是,除非源键和目标属性名称匹配,否则不会映射属性。从RecognizePostfixes映射时,Dictionary<string, object>似乎不起作用。我也尝试使用ExpandoObject。 AutoMapper按照here都支持,但是似乎没有配置支持。

是否可以使用AutoMapper以某种方式实现这一目标?我唯一的限制是我必须能够动态配置源属性,因此为什么可以使用Dictionary<string, object>ExpandoObject

0 个答案:

没有答案