使用格式时......
var customerInput = Mapper.Map<CustomerInput>(customer);
使用Activator.CreateInstance创建CustomerInput。我认为应该有一种方法来使用工厂来创建这些对象。所以我们想......
var customerInput = Mapper.Map<ICustomerInput>(customer);
...我们可以使用工厂将ICustomerInput映射到“新”CustomerInput。
有没有办法用ValueInjecter做到这一点?
答案 0 :(得分:1)
您可以使用“附加参数”功能:
var customer = Mapper.Map<Customer>(foo, new Customer { ... });
您可以在AddMap中使用此参数,如下所示:
Mapper.AddMap<Foo, Customer>((src, tag) =>
{
var res = (Customer)tag;
res.InjectFrom(src);
res.A = src.B + src.C;
...
return res;
});