22

MVCサイトなしでASP.Netのデータ注釈を使用する方法があるかどうか疑問に思いました。

私の例は、一度作成したクラスを検証する必要があるか、エラーをスローするクラスがあることです。イニシャライザーによって起動された一連のifブロックではなく、データアノテーションメソッドが好きです。

これを機能させる方法はありますか?

私はそれが次のようなものになると思いました:

  • データ注釈を追加する
  • クラスのMVCバリデーターを呼び出すイニシャライザーのメソッドを起動します

何か案は?データアノテーションクラスSystem.ComponentModel.DataValidationを使用できることを望んでいたため、プロジェクトにMVCフレームワークを追加していないことを認める必要があります。

4

1 に答える 1

31

次に例を示します。

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ははるかに強力です。

于 2010-06-22T06:07:49.147 に答える