Я только начинаю осваивать пользовательские атрибуты проверки и пытаюсь написать собственный атрибут проверки, который будет помещен на уровне класса для проверки по нескольким свойствам моей модели.
Я могуполучить доступ ко всем свойствам моей модели, и я хочу иметь возможность проверять наличие нескольких условий в моей перегрузке IsValid и сообщать о них, получая различные сообщения об ошибках следующим образом (упрощенный пример).
public override bool IsValid(object value)
{
var model = (MyObject) value;
//if this value is set, I don't want to do anything other checks
if (model.Prop3)
{
return true;
}
if (model.Prop1 == "blah" && model.Prop2 == 1)
{
ErrorMessage = "you can't enter blah if prop 2 equals 1";
return false;
}
if(model.Prop1 == "blah blah" && model.Prop2 == 2)
{
ErrorMessage = "you can't enter blah blah if prop 2 equals 2";
return false;
}
return true;
}
Но когдаПри этом я получаю исключение при первом обращении к ErrorMessage: «Невозможно установить свойство более одного раза.
Теперь я могу разделить свой пользовательский атрибут на несколько пользовательских атрибутов, но надеялся, что найдется способ сделать это».в одном, в противном случае, я буду повторять свое «поймать все» в каждом
//if this value is set, I don't want to do anything other checks
if (model.Prop3)
{
return true;
}
У меня уже был поиск, но я ничего не мог найти, поэтому извиняюсь, если я упускаю что-то очевидное.
заранее спасибо!