数据验证是任何软件应用中至关重要的一环。通常,会在业务类、模型等中实现这些验证。开发者在编写代码时,往往会在类的属性的“set”方法中添加这些验证。例如,在C#中,可能会这样定义一个客户类:
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”可以让更加方便地进行数据验证。可以通过在类属性上添加预定义的属性来实现验证,这些属性会自动应用相应的验证规则。例如,可以在CustomerName属性上添加“Required”属性:
[Required]
public string CustomerName
{
get
{
return _CustomerName;
}
set
{
_CustomerName = value;
}
}
要使用“DataAnnotations”,首先需要在类库项目中添加对“System.ComponentModel.DataAnnotations”程序集的引用。接下来,将通过以下步骤来实现数据验证:
第一步:引用System.ComponentModel.DataAnnotations程序集。
using System.ComponentModel.DataAnnotations;
第二步:使用验证属性装饰类。
public class Customer
{
private string _CustomerName;
[Required]
public string CustomerName
{
get
{
return _CustomerName;
}
set
{
_CustomerName = value;
}
}
}
第三步:调用“Validator”类进行验证。
Customer obj = new Customer();
obj.CustomerName = "";
var context = new ValidationContext(obj, null, null);
var result = new List();
var isValid = Validator.TryValidateObject(obj, context, result, true);
foreach (var str in result)
{
Console.WriteLine(str.ErrorMessage.ToString());
}
以上代码展示了如何创建一个需要验证的对象,并通过“Validator”类进行验证。验证错误会被收集到“ValidationResult”集合中。如果需要遍历错误结果,可以使用“foreach”循环。
此外,如果有多个验证规则,不要忘记将最后一个属性设置为true,以确保所有的验证规则都被执行。
var isValid = Validator.TryValidateObject(obj, context, result, true);