参数化数据注释中“必需”属性中的资源字符串

本文关键字:属性 资源 字符串 数据 注释 参数 必需 | 更新日期: 2023-09-27 18:23:38

我希望这个主题有意义:)

我不关心本地/全局内容,但如果我有一个名为IsRequired的资源,其值为"{0}是必需的"。如何与数据注释一起使用?(不是MVC btw)

这将"工作",当然:

[Required(ErrorMessageResourceName = "IsRequired", 
ErrorMessageResourceType=typeof(Resources))]

但我需要这样的东西:

[Required(string.Format(ErrorMessageResourceName = IsRequired, "MyProperty"), 
ErrorMessageResourceType=typeof(Resources))]

(是的,我知道这行不通;)

是否可以格式化数据注释必需属性中的资源字符串?为什么要写200个必需的资源字符串,而1个就足够了?

谢谢,Richard

参数化数据注释中“必需”属性中的资源字符串

一个选项是子类RequiredAttribute:

public class MandatoryAttribute : RequiredAttribute
{
    // ...
}

然后,您可以重写Validate方法,在该方法中,您可以检查属性名称的ValidationContext,并使用该方法生成正确的错误消息。