Иногда у меня есть действительно сложные модели со многими строковыми свойствами, которые необходимо проверять при настройке, однако проверка часто не идет дальше IsNotNullOrWhitespace.
Это часто приводит к ненужному повторению кода, поэтому мне было интересно, есть ли способ автоматически проверять значения установщика свойств, желательно без какой-либо дополнительной инфраструктуры.
Возможные решения
- АОП (например, с PostSharp)
- Быстрая проверка
- Аннотации данных
Аннотации данных кажутся мне наиболее естественным способом, поскольку проверка очень близка к модели, а поскольку она является частью .Net-Framework, атрибуты в порядке. Однако, если я использую модель вне MVC или сериализации, мне приходится выполнять проверку вручную с помощью валидатора. Таким образом, я должен выполнить проверку, вероятно, во многих местах (репозитории, API, службы), и если я где-то забуду об этом, правила моего домена могут быть нарушены.
АОП может быть идеальным способом, однако в C# нет такой вещи, и тесное связывание моих моделей предметной области с инфраструктурным компонентом, таким как PostSharp или Ninject (перехват), недопустимо.