我正在努力实现一个验证器,用于验证一个类中只有一个属性被设置。
假设我们有以下类:
public class SomeClass
{
public DateTime SomeDate {get; set;}
public IEnumerable<int> FirstOptionalProperty {get; set;}
public IEnumerable<int> SecondOptionalProperty {get; set;}
public IEnumerable<int> ThirdOptionalProperty {get; set;}
}
这个类有一个必填属性 -
SomeDate
。其他属性是可选的,只能设置一个,例如:如果设置了FirstOptionalProperty
,则SecondOptionalProperty
和ThirdOptionalProperty
应为null;如果设置了SecondOptionalProperty
,则FirstOptionalProperty
和ThirdOptionalProperty
应为null,以此类推。
换句话说:如果设置了IEnumerable属性中的任何一个,则其他IEnumerable应为null。
有没有关于实现此类验证器的提示/想法?我想到的唯一方法是编写一些When
规则的代码块,但这种编写代码的方式容易出错并且结果看起来很丑陋。
NotBeNull
?我理解的对吗? - Mong Zhu