Какой хороший способ проверить модель, когда информация, внешняя по отношению к модели, требуется для проверки правильности? Например, рассмотрим следующую модель:
public class Rating {
public string Comment { get; set; }
public int RatingLevel { get; set; }
}
Затем системный администратор может установить RatingLevels
, для которого требуется комментарий. Эти настройки доступны через службу настроек.
Итак, для полной проверки модели мне нужна внешняя информация, в этом случае служба настроек.
Я рассмотрел следующее:
- Ввести услугу в модель. DefaultModelBinder использует System.Activator, чтобы создать объект, чтобы он не проходил через обычный преобразователь зависимостей, и я не могу внедрить эту услугу в модель без создания нового связующего устройства (кроме того, что не похоже на правильный способ сделать это).
- Внесите сервис в аннотацию. Я еще не уверен, что это возможно, но скоро расследуем. Он все еще чувствует себя неуклюжим.
- Использовать настраиваемое связующее устройство. По-видимому, я могу реализовать OnPropertyValidating, чтобы выполнить выборочную проверку свойств. Это кажется наиболее предпочтительным до сих пор, хотя я еще не уверен, как это сделать.
Какой метод, выше или не выше, лучше всего подходит для такого типа проверки?