C# 我可以将数据批注错误消息存储在外部文件中吗?
我正在使用数据注释来验证我的类属性。出现了将验证错误消息存储在外部文件中的需求,在运行时将从该文件加载到内存中 我想我可以从XML文件中加载一组错误消息,然后设置ErrorMessage:=[StringVariableHere]。。。但显然这不起作用,因为需要使用一个常量值 如果我将错误消息存储在Resource.resx文件中,那么这些错误消息将编译到项目中,并且无法在运行时加载,或者我错了C# 我可以将数据批注错误消息存储在外部文件中吗?,c#,vb.net,winforms,annotations,C#,Vb.net,Winforms,Annotations,我正在使用数据注释来验证我的类属性。出现了将验证错误消息存储在外部文件中的需求,在运行时将从该文件加载到内存中 我想我可以从XML文件中加载一组错误消息,然后设置ErrorMessage:=[StringVariableHere]。。。但显然这不起作用,因为需要使用一个常量值 如果我将错误消息存储在Resource.resx文件中,那么这些错误消息将编译到项目中,并且无法在运行时加载,或者我错了 有人能给我一个解决方案吗?您可以派生数据注释属性,并为消息提供自己的来源 public class
有人能给我一个解决方案吗?您可以派生数据注释属性,并为消息提供自己的来源
public class RequiredAttribute : System.ComponentModel.DataAnnotations.RequiredAttribute
{
private string _displayName;
public RequiredAttribute()
{
ErrorMessageResourceName = "Validation_Required";
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
_displayName = validationContext.DisplayName;
return base.IsValid(value, validationContext);
}
public override string FormatErrorMessage(string name)
{
//LOOK HERE! ;)
var msg = GetTheTextHereFromYourSource();
return string.Format(msg, _displayName);
}
}
我在我的博客中描述了这项技术(我的目标是获得本地化的错误消息,但概念是一样的):嗨,jgauffin,这是完美的,看起来很像我需要的,除了一件事。。。它只适用于.NETFramework4。我应该在我原来的帖子中提到,我被限制使用3.5。。。我可以在代码中更改什么以使其工作?谢谢好啊删除该参数并检查
名称
参数包含的内容。你可以用它来代替。