Создать зависимость одного свойства от другого при валидации

Рейтинг: 1Ответов: 0Опубликовано: 13.04.2023

Есть класс Student, в котором булево свойство IsExpelled, в зависимости от значения которого должно проверяться на наличие значения поле Semestr

Был написан кастомный атрибут валидации:

public class ValidationForExpelledAndAcademAttribute : ValidationAttribute
{
    
    bool _checkbox;
    public ValidationForExpelledAndAcademAttribute(bool checkbox)
    {
        _checkbox=checkbox;
    }

    public override bool IsValid(object value)
    {
        if (_checkbox == true)
        {
            if (value!=null)
                return true;
            return false;
            
        }
        if(_checkbox==false)
        {
            // if (value==null)
                return true;
        }
        return false;
    }
}

Но проблема в том, что нельзя в качестве параметра передать поле (т.к. требуется ссылка на объект)

 [ValidationForExpelledAndAcadem(IsExpelled)]
    public int Semestr { get; set; }

Можно ли как-то решить эту проблему? Или как лучше реализовать эту проверку?

Ответы

Ответов пока нет.