최신 정보:
너무 늦었지만이 업데이트를 추가하고 싶습니다.
Phil Haacked 가 제시 한 Conventional Model Metadata Provider 를 사용하고 있습니다.이 모델 은 더 강력하고 적용하기 쉽습니다.
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; }
전체 현지화 자습서를 보려면 이 페이지를 참조 하십시오 .