我有一個多語言系統,以及遍佈我有我所說的每一個類「包裝屬性」,如地方:.NET 4,我可以使用屬性或其他OOP功能來簡化此代碼嗎?
Public Property Name(Optional ByVal ForceLanguageCode As String = Nothing) As String
Get
Return Translations.GetByCode(Me.EntityID, "name", ForceLanguageCode)
End Get
Set(ByVal value As String)
Translations.SetByCode(Me.EntityID, "name", value, ForceLanguageCode)
End Set
End Property
然後,我會複製和粘貼代碼,每翻譯領域。
我希望能夠以某種方式用一行代碼替換它,並帶有一個類。每次改變的唯一的東西就是這個字段的名字,比如「name」,「title」或者「subject」等等。這看起來有點浪費,我希望我的系統和使用一樣容易可能爲開發者。
我做了一些研究,屬性,但我不認爲這是我的回答是:
1)我不知道如何自動實例化的對象,特別是因爲這是延伸的LINQ實體,其中New()簽名已經由DBML生成。我目前的技術使用靜態功能。
2)「EntityID」是實時信息,不是編譯時。
有人可以建議我如何清理這個爛攤子嗎?
對不起,很遲才接受。我會想象,當試圖解決我的問題時,理解MVC的TryUpdateModel如何工作會有所幫助,這似乎也以某種方式遍歷這些屬性並檢查它們的屬性等。將在MVC源代碼中進行探討。 – 2013-12-01 10:31:43