У меня очень быстрое определение кода с использованием данных:
using System.ComponentModel.DataAnnotations;
class UseDataAnnotations
{
[Required(ErrorMessage = "Name is compulsory")]
[StringLength(20)]
[RegularExpression(@"^[A-Z]{5, 20}$")]
public string Name { get; set; }
}
class Program
{
public static void Main(String [] args)
{
UseDataAnnotations obj = new UseDataAnnotations();
obj.Name = null;
var context = new ValidationContext(obj, null, null);
var result = new List<ValidationResult>();
bool IsValid = Validator.TryValidateObject(
obj,
context,
null,
true);
Console.WriteLine(IsValid);
foreach(var x in result)
{
Console.WriteLine(x.ErrorMessage);
}
}
}
Я бы ожидал: пока поле «Имя» пусто, все проверки должны завершиться неудачей и вызвать какое-то исключение.
Но при запуске этой программы она просто печатает "False", больше ничего не происходит. Так в чем же я ошибся, моя «аннотация данных» сработала вообще?
Я использую vs2017. Большое спасибо.