我在简单类的属性上方使用[Required()]:
public class A
{
[Required()]
public string Str { get; set; }
public int Salary { get; set; }
}
在Main()中,我创建了该类的一个实例,不设置属性:
static void Main(string[] args)
{
A a = new A();
}
我希望得到一个例外,因为我没有设置任何值到Str属性,但我什么也没得到。我是否错过了[必填]的目的?
Required
属性用于验证(例如,在ASP.NET中),而不用于引发运行时异常。
我是否错过了[必填]的目的?
非常非常。让我们阅读the docs:
RequiredAttribute
属性指定在验证表单上的字段时,该字段必须包含一个值
因此,我们专门讨论验证:它是System.ComponentModel.DataAnnotations
命名空间内各种类的一部分,大部分与验证有关。
主要是看Validation
类,它使您可以根据放置在对象上的属性来验证对象的属性。