使用 C# "DataAnnotation" 进行验证






4.18/5 (7投票s)
在这篇简短的文章中,我们将讨论 C# DataAnnotation 库如何帮助我们进行验证。
目录
引言
验证是任何软件应用程序中最重要的方面之一。通常,作为最佳实践,我们将这些验证放在业务类、模型等中。因此,如果您通常看到这种趋势,开发人员最终会在类的属性的“set
”方法中编写这些验证。
public class Customer
{
private string _CustomerName;
public string CustomerName
{
get { return _CustomerName; }
set
{
if (value.Length == 0)
{
throw new Exception("Customer Name is required");
}
_CustomerName = value;
}
}
}
“DataAnnotation
”为您提供现成的属性,您可以将这些属性装饰在类属性上,并且验证将相应地应用。
[Required]
public string CustomerName
{
get { return _CustomerName; }
set {_CustomerName = value; }
}
如何使用“DataAnnotations”?
步骤 1:引用 System.ComponentModel.DataAnnotations
第一步是向您的类库项目添加对“System.ComponentModel.DataAnnotations
”程序集的引用。
步骤 2:使用属性装饰类
下一步是使用验证属性装饰类。例如,在“CustomerName
”属性上,我们装饰了“Required
”属性。
public class Customer
{
private string _CustomerName;
[Required]
public string CustomerName
{
get { return _CustomerName; }
set {_CustomerName = value; }
}
}
步骤 3:调用“Validator”进行验证
装饰完验证属性后,我们需要调用“Validator
”类来执行验证。创建 customer
对象并将“CustomerName
”属性设置为空,以便触发验证错误。
Customer obj = new Customer();
obj.CustomerName = "";
使用上述创建的对象创建“ValidationContext
”对象。
var context = new ValidationContext(obj,null,null);
使用“Validator
”调用“TryValidateObject
”方法来运行验证。验证错误将收集在“ValidationResult
”集合中。
var result = new List<validationresult>(); var isValid = Validator.TryValidateObject(obj, context, result,true); </validationresult>
如果您希望循环遍历错误结果,可以在“result
”集合上运行“foreach
”。
foreach (var str in result)
{
Console.WriteLine(str.ErrorMessage.ToString());
}
以下是上述代码的图形表示。简单来说,要验证的对象会连同上下文一起传递给“validator
”类,错误结果会出现在“ValidationResult
”集合中。
供您参考:如果您有多个验证,请不要忘记将最后一个属性设置为 true
。
var isValid = Validator.TryValidateObject(obj, context, result,true);
另请参阅以下有关 C# 注解的视频
进一步阅读,请观看下面的面试准备视频和分步视频系列。