Я написал атрибут селектора метода настраиваемого действия, который имеет три свойства bool
.Недопустимо, чтобы все три из них были false
.По крайней мере, один из них должен быть true
.Когда выполняется IsValidForRequest
, я проверяю, что по крайней мере один из них true
.Но если нет, то какое исключение я должен выбросить?
Какой-то соответствующий код:
public class MyCustomAttribute : ActionMethodSelectorAttribute
{
public bool Prop1 { get; set; }
public bool Prop2 { get; set; }
public bool Prop3 { get; set; }
public MyCustomAttribute()
{
this.Prop1 = true;
this.Prop2 = true;
this.Prop3 = true;
}
public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo)
{
if (controllerContext == null)
{
throw new ArgumentNullException("controllerContext");
}
// at least one of them must be true
if (!this.Prop1 && !this.Prop2 && !this.Prop3)
{
throw new ?????
}
// other codez here
}
}
Атрибуты имеют такую хорошую возможность инициализировать их, а также предоставлять значения свойств, поэтому я должен проверить ихв методе IsValidForRequest
.
[MyCustom(Prop1 = false, Prop2 = false, Prop3 = false)]
Какое исключение следует выдать?