C#[Required()]注释在应有的情况下不会引发异常

问题描述 投票:0回答:1

我在简单类的属性上方使用[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属性,但我什么也没得到。我是否错过了[必填]的目的?

c# .net annotations attributes data-annotations
1个回答
0
投票

Required属性用于验证(例如,在ASP.NET中),而不用于引发运行时异常。


0
投票

我是否错过了[必填]的目的?

非常非常。让我们阅读the docs

RequiredAttribute属性指定在验证表单上的字段时,该字段必须包含一个值

因此,我们专门讨论验证:它是System.ComponentModel.DataAnnotations命名空间内各种类的一部分,大部分与验证有关。

主要是看Validation类,它使您可以根据放置在对象上的属性来验证对象的属性。

© www.soinside.com 2019 - 2024. All rights reserved.