更新:
手遅れであることがわかっていますが、この更新を追加したいと思います。
私が使用している従来のモデルメタデータプロバイダによって提示されたフィルHaackedを、それはそれでテイクルックを適用するために、より強力かつ簡単です:
ConventionalModelMetadataProviderを
古い答え
ここで、多くのタイプのリソースをサポートする場合は、次のようにします。
public class LocalizedDisplayNameAttribute : DisplayNameAttribute
{
private readonly PropertyInfo nameProperty;
public LocalizedDisplayNameAttribute(string displayNameKey, Type resourceType = null)
: base(displayNameKey)
{
if (resourceType != null)
{
nameProperty = resourceType.GetProperty(base.DisplayName,
BindingFlags.Static | BindingFlags.Public);
}
}
public override string DisplayName
{
get
{
if (nameProperty == null)
{
return base.DisplayName;
}
return (string)nameProperty.GetValue(nameProperty.DeclaringType, null);
}
}
}
次に、次のように使用します。
[LocalizedDisplayName("Password", typeof(Res.Model.Shared.ModelProperties))]
public string Password { get; set; }
ローカリゼーションの完全なチュートリアルについては、このページを参照してください。