私は、多言語システムを持っており、すべての私はすべてのクラスで「ラッパーのプロパティ」を呼ぶようなものを持っている場所の上に、例えば:私は、すべての翻訳可能のためにコピーして、そのコードを貼り付けます.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
フィールド。
私は、何とか1行のコードでそれをクラスに置き換えることができることを期待しています。毎回変更されるのは、「名前」、「タイトル」、「件名」など、フィールドの名前だけです。これは少し浪費しているようですが、私のシステムは開発者のために可能です。
私は、属性にいくつかの研究をしましたが、私はそれはのように私の答えだとは思わない:私はこれがどこLINQのエンティティを延長している、特にとして、自動的にオブジェクトをインスタンス化する方法がわからない
1) New()シグネチャはすでにDBMLによって生成されています。私の現在の技術は静的関数を使用しています。
2)「エンティティID」はリアルタイム情報であり、コンパイル時ではありません。
誰も私がこの混乱をきれいにする方法を提案できますか?
ご了承ください。私は自分の問題を解決しようとするとMVCのTryUpdateModelがどのように動作するかを理解することが有用であると考えていますが、これは何らかの方法でプロパティを調べて属性などをチェックしているようです。 –