2
C#6では、nameof()キーワードを使用して、ローカライズを使用するタイプセーフなDisplay属性を作成できるようになりました。 (もDisplayName attribute from Resources?参照)ResourceTypeを推測するカスタムDisplayAttributeを作成する
結果はこのようなものになります。
[Display(NameRes = Localization.Account.MinPasswordLength), ResourceType = typeof(Localization.Account))]
public int MinPasswordLength { get; set; }
しかし、プロパティの数十のためにこれを入力した後、私はもっと簡単な方法がなければならない感覚を得ます。毎回同じ情報を2回(ほとんど)入力しています。
質問: 名前情報からResourceTypeを推測するカスタムDisplayName属性を作成するにはどうすればよいですか?
[Display(NameResource = Localization.Account.MinPasswordLength)]
public int MinPasswordLength { get; set; }
これが可能であれば任意のアイデア:コードは次のようになります
?もしそうなら、どうですか?
あなたはそれはあなたがそれを継承することができないことを意味' sealed'であることがわかります。 1つの方法は、リソースファイルから情報を読み取るカスタムの 'DisplayNameAttribute'を作成することです。 –
はい、クラスは封印されています。それは残念ですが、おそらくそれは延長で達成されるかもしれませんか? – Frank