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

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

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

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

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

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

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

Ответы

Ответ 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 намного эффективнее.