Валидиране на клас с атрибути C#
Здравейте имам следното чудене:
По принцип създаваме си ентитита или ДТО та с атрибути и после когато искаме да ги проверим пишем един метод за валидиране той минава през всеки атрибут и казва дали са удовлетворени всички. Питането ми е следното. Ако имаме клас със неща които не са null-able например int, DateTime , на тях [Required] не им трябва щото нали няма как да са null. До тук добре обаче какво се случва ако искаме да десериализираме в такъв случай или да намапнем от друг клас в този клас.. Ако няма съответна информация за даденото пропърти то редно е да се сетне null ама в случая не може null и ще се сетне default value. След което ако искаме да валидираме с атрибутите дори и да има Required валидиращия метод ще каже да 0- пак е стойност и ще подмине...
Питането ми е това: Ако искаме да валидираме че имаме налично да кажем int Age трябва ли нарочно да го зададем да е:
[Required]
int? Age {get;set;}
щото според мен ако не го направя така няма как да го валидирам с атрибути? Бъркам ли или не?