在自动映像选项中传递多个对象

时间:2016-12-07 12:19:36

标签: c# linq automapper

我希望能够通过Options字典将多个对象传递给Automapper,但字典本身是只读的。

E.g。我发现的例子显示添加一个这样的项目:

Mapper.Map<Source, Dest>(src, opt => opt.Items["Foo"] = "Bar");

但我想做更像这样的事情:

 var mappingOptions = new Dictionary<string, object>();
 mappingOptions["foo"] = "foo";
 mappingOptions["bar"] = "bar";

 var model = _mapper.Map<ThingModel>(realthing,
     opt => opt.Items = mappingOptions // readonly, can't be assigned
 );

是否可以添加多个项目,可能只是在LINQ内部?

2 个答案:

答案 0 :(得分:3)

你的意思是这样吗?

Mapper.Map<Source, Dest>(src, opt => 
{
     opt.Items["foo"] = "foo";
     opt.Items["bar"] = "bar";
});

答案 1 :(得分:0)

在这种情况下,您必须清除字典并使用源字典中的项填充它:

apply plugin: 'java'

sourceCompatibility = 1.7
targetCompatibility = 1.7