2017-04-17 57 views
1

新對象時使用格式...使用工廠創建於ValueInjecter

var customerInput = Mapper.Map<CustomerInput>(customer); 

一個CustomerInput使用Activator.CreateInstance創建。我認爲應該有辦法使用工廠來創建這些對象。所以我們想...

var customerInput = Mapper.Map<ICustomerInput>(customer); 

...我們可以使用工廠將ICustomerInput映射到一個「新」CustomerInput。

有沒有辦法用ValueInjecter做到這一點?

回答

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; 
    });