2017-09-08 34 views
0

我有一堆使用Builder設計模式實例化的類。例如,我可能有一個使用我實例化這樣的生成器設計模式的汽車:Automapper與Builder設計模式

Builder carBuilder = Car.CreateBuilder(); 
carBuilder.setColor("red"); 
carBuilder.setHorsepower(300); 
Car car = carBuilder.Build(); 
car.color == "red"; // True 
car.horsepower == 300; // True 

我怎麼能使用Automapper從標準類這個類映射?舉例來說,如果我有一個車,看起來像這樣:

class Truck { 
    public string color; 
    public int horsepower; 
} 

Truck truck = new Truck(); 
truck.color = "blue"; 
truck.horsepower = 250; 

我如何可以配置Automapper,以便它可以映射到卡車車嗎?

Car newCar = Mapper.Map<Truck, Car>(truck); // This is how I want to use Automapper 
car.color == "blue"; // Should be true 
car.horsepower == 250; // Should be true 

回答

0

您需要這些屬性的setters。但是制定者可以是私人的。 ConstructUsing將允許您無論如何創建一個新的對象。

+0

我假設你說的是Car上的屬性,對嗎?我如何讓AutoMapper調用CreateBuilder()和Build()? – mshindal

+0

你沒有,你只是映射到你創建的對象。 –

+0

您也可以使用ConstructUsing從卡車創建汽車。 –