Аннотации данных по объектной модели, разделенной между 2 приложениями
-
29-09-2019 - |
Вопрос
У меня есть библиотека классов, которая содержит мою объектную модель. Я бы хотел, чтобы каждый объект имел аннотации данных, чтобы помещать правила проверки в мою модель, чтобы проверка могла быть передана в 2 приложения. Один из них - приложение MVC 2, а другое - приложение Windows Forms.
Мне нужно иметь возможность проверять модель объекта вручную из кода, используя аннотации данных, но без использования XVAL. Когда я переключаю библиотеку модели объектов на профиль клиента 4.0, она больше не может создавать с помощью компонентов XVAL. Библиотека класса объектов домена будет распространяться с приложением Windows, поэтому я хотел использовать профиль клиента 4.0.
Любые идеи?
Решение
Что ж, я дам ответ немного большим содержанием на случай, если это может помочь кому -то другому.
Для нашей проверки мы используем простой метод проверки, подобный этому:
public void Validate(T entity)
{
var context = new ValidationContext(entity, null, null);
var results = new List<ValidationResult>();
bool valid = Validator.TryValidateObject(entity, context, results, true);
if (!valid)
; // do something fancy with the results here, perhaps
}
Вы также можете пропустить TryValidateObject
и иди прямо к ValidateObject
Если вы не хотите делать что -то необычное с результатами.