我想知道什麼是設計DTO對象的構造函數的最佳做法。C#Dto構造函數和依賴注入
說,我有一個DTO對象是這樣的:
class CustomerDto
{
public string Name { get; set; }
public string Surname { get; set; }
public string Phone { get; set; }
...
}
有幾種方法來構造對象:當你看到這
public CustomerDto(string name, string surname, string phone, ...)
{
this.Name = name;
this.Surname = surname;
this.Phone = phone;
...
}
:
我可以聲明構造構造函數並立即結束SRP(單個責任)違規?
即使這些屬性都是相關的。
人們也可能會認爲沒有必要驗證屬性,因爲這是一個DTO並且沒有任何行爲,行爲應該位於此映射的域對象上。
在C#中,我們還可以更優雅的構造這個對象:
var dto = new CustomerDto()
{
Name = "Some name",
Surname = "Some surname"
}
或者用一口流利的建設者或如NBuilder的框架。
Automapper也有自動映射框架的用法。問題還在於使用Ioc容器,Ctor變得複雜,以及交換參數的風險,例如,如果您姓氏在哪裏傳遞,反之亦然,驗證可能會錯過這個更容易,然後顯式映射,如上所述。
請幫助說服我哪一種更好的方法。
[依賴注入 - 使用數據傳輸對象(DTO)?](http:// stackoverflow。com/questions/6297322/dependency-injection-use-with-data-transfer-objects-dtos) –
我遇到了同樣的問題,並決定不使用構造函數。出於一個簡單的原因:稍後,在一個月或6幾個月,我或其他人會看這個,並且必須以我自己(和你自己)現在所想的方式思考它。我發現在閱讀代碼的過程中思考它太複雜了。 – dferraro