6

是否可以对多个属性使用单个数据注释/属性?

代替:

[Required]
public string Name {get;set;}
[Required]
public string Something {get; set;}
[Required]
public string Everything {get;set;}

三个属性的一个属性:

[Required]
public string Name {get;set;}
public string Something {get; set;}
public string Everything {get;set;}

我知道第二个代码块只将 Name 设置为不为空,但是有没有办法让所有三个属性都不为空,只有一个 [Required] 属性?

4

2 回答 2

5

没有办法专门这样做。

如果您的目标是最小化输入并添加单个属性来验证类型的所有成员是否已设置,则可以创建自定义验证属性并将其应用于该类型。它可以使用反射来提取类型的所有属性并检查它们。

于 2013-10-28T22:01:05.143 回答
1

不,没有。

属性需要显式应用于每个属性。

我不确定你想在这里保存什么。编码工作只是复制和粘贴,如果必填字段发生更改,您必须重新排列代码,而不仅仅是在修改后的属性中添加或删除属性。

编译器如何知道何时停止应用该[Required]属性?

如果在不同的属性集上有多个属性,您将如何安排代码?

于 2013-10-28T21:58:17.160 回答