У меня есть собственный класс (простой):
using System;
using System.ComponentModel.DataAnnotations;
public class MyClass {
    [Required]
    public string Title { get; set;}
    [Required]
    public string Description { get; set;}
}
Я хочу проверить этот объект и получить исключение со всем, что не правильно.
Если я это сделаю:
void Validate() {
    var objectToValidate = new MyClass { }; // Both properties are null at this time
    var ctx = new ValidationContext(objectToValidate, null, null);
    Validator.ValidateObject(objectToValidate, ctx, true);
}
Выдается исключение ValidationException, но оно показывает только первую ошибку, даже я указываю true для параметра validateAllProperties.
Если я немного реорганизую свой код:
void Validate() {
    var objectToValidate = new MyClass { }; // Both properties are null at this time
    var ctx = new ValidationContext(objectToValidate, null, null);
    var errors = new List<ValidationErrors>();
    var isValid = Validator.TryValidateObject(objectToValidate, ctx, errors, true);
    if(!isValid) {
        throw new AggregateException(
            errors.Select((e)=>new ValidationException(e.ErrorMessage)
        );
    }
}
У меня могут быть все мои ошибки.
Почему первый фрагмент кода работает так, как ожидалось? Я сделал что-то неправильно?
ТНХ