使用工厂在 ValueInjecter 中创建新对象
using a factory to create new objects in ValueInjecter
使用格式时...
var customerInput = Mapper.Map<CustomerInput>(customer);
CustomerInput 是使用 Activator.CreateInstance 创建的。我认为应该有一种方法可以使用工厂来创建这些对象。所以我们想...
var customerInput = Mapper.Map<ICustomerInput>(customer);
...我们可以使用工厂将 ICustomerInput 映射到 "new" CustomerInput。
有没有办法用 ValueInjecter 做到这一点?
您可以为此使用 "additional parameters" 功能:
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;
});
使用格式时...
var customerInput = Mapper.Map<CustomerInput>(customer);
CustomerInput 是使用 Activator.CreateInstance 创建的。我认为应该有一种方法可以使用工厂来创建这些对象。所以我们想...
var customerInput = Mapper.Map<ICustomerInput>(customer);
...我们可以使用工厂将 ICustomerInput 映射到 "new" CustomerInput。
有没有办法用 ValueInjecter 做到这一点?
您可以为此使用 "additional parameters" 功能:
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;
});