2010-07-06 39 views
0

我剛剛開始一個新項目,當前包含一些公平的ViewModel DTO類。用元組替換ViewModels

我想知道是否有用,甚至是很好的做法,用元組替換這些DTO中的很多元素,並將其用作將一堆物體轉移到我的視圖中的方法。

您認爲如何?這是元組的正確用法,還是我在這裏不受歡迎?

回答

2

通常,視圖模型具有與其相關的元數據,其中允許您執行驗證並與編輯器/顯示模板集成。元組似乎不合適。另一個缺點是他們不太清楚視圖模型中每個屬性的用途(Model.Item1,Model.Item2,...,除了原始開發人員之外沒有其他人能夠理解這一點,並且如果他在幾天之後像我一樣即使他無法理解)。

+0

感謝你們兩位(@Darin和@Mathew Abbott)的回答。很有幫助。我不得不選擇一個作爲接受,我去了這個,因爲它有一些額外的信息。儘管歡呼,但兩者都很有幫助。 – 2010-07-06 22:07:59

+0

當我使用Tuple而不是ViewModel時,在視圖中我使用具有邏輯名稱的局部變量並將它們設置爲Model.Item1,... – Matus 2013-06-12 14:32:05

1

一個我用一個元組看到的問題是,在你的看法:

inherits="ViewPage<Tuple<Model1, Model2>>" 

...等,當你使用這些模型,你必須訪問它們爲:

Model.Item1, 
Model.Item2 

...這不像使用漂亮的強類型視圖模型那麼清晰。

0

在C#7中,您現在可以命名這些項目 - 下面的代碼幾乎是一個免費的映射器,我認爲它可以替代不需要任何附加到它們的行爲的DTO。

public (string first, string last, int age) GetTuple() 
    { 
     return ("John", "Connor", 1); 
    }