Подтвердить что ты не робот

Использование аннотации данных ASP.Net MVC за пределами MVC

Мне было интересно, есть ли способ использовать аннотацию ASP.Net Data без сайта MVC.

Моим примером является то, что у меня есть класс, который когда-то был создан, необходимо проверить или вызвать ошибку. Мне нравится метод аннотаций данных, а не куча блоков if, запущенных initaliser.

Есть ли способ заставить это работать?

Я думал, что это будет что-то вроде:

  • Добавить аннотации данных
  • Пожар метода в инициализаторе, который вызывает валидатор MVC для класса

любые идеи? я должен признать, что я не добавил структуру MVC в свой проект, поскольку я надеялся, что могу просто использовать класс аннотаций данных System.ComponentModel.DataValidation

4b9b3361

Ответ 1

Вот пример:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

public class Foo
{
    [Required(ErrorMessage = "the Bar is absolutely required :-)")]
    public string Bar { get; set; }
}

class Program
{
    public static void Main()
    {
        var foo = new Foo();
        var results = new List<ValidationResult>();
        var context = new ValidationContext(foo, null, null);
        if (!Validator.TryValidateObject(foo, context, results))
        {
            foreach (var error in results)
            {
                Console.WriteLine(error.ErrorMessage);
            }
        }
    }
}

Но, честно говоря, FluentValidation намного эффективнее.