検証ブロックとNhibernate.Validator
-
03-07-2019 - |
質問
検証フレームワークを探しており、すでにNHibernateを使用している間にcontribプロジェクトのNHibernate.validatorを使用することを考えていますが、堅牢であるように見えるMS Validationブロックも調べますが、それぞれの詳細についてはまだ説明していませんまだ1つなので、誰かがこれら2つのフレームワークに足を踏み入れたのではないかと思いますか?
解決
NHibernate Validatorでは、永続化のためにNHibernateを使用する必要はありません。使い方は次のように簡単です:
var engine = new ValidatorEngine();
InvalidValue[] errors = engine.Validate(someModelObjectWithAttributes);
foreach(var error in errors)
{
Console.WriteLine(error.Message);
}
もちろん、NHibernateにフックして無効なオブジェクトの永続化を防ぐことができますが、これを使用して非永続オブジェクトを検証することもできます。
他のヒント
ほとんどの場合、Spring.NETはかなり独立しています。意味することは、あなたが再設計することを強制するべきではありません。必要なだけ使用できます。 springを使用して検証を必要とするクラスに注入できるオブジェクトを作成するのは非常に簡単です。次に、このオブジェクトを城に配線して、「検証グループ」の名前を取得します。または「バリデーター」必要な場合は、フォーム/ビジネスオブジェクト/サービスがバリデータを使用するオブジェクトにバリデータをスプリングで挿入します。
ドキュメントへのリンクは、セクション12の検証です:
http://www.springframework.net /docs/1.2.0-M1/reference/html/index.html
Castleを使用しているだけですか、それともMonorailを使用していますか
もちろん、独自の検証フレームワークを作成することもできます。例えばKarl Seguinがお手伝いします:
http:/ /codebetter.com/blogs/karlseguin/archive/2009/04/26/validation-part-1-getting-started.aspx
http:/ /codebetter.com/blogs/karlseguin/archive/2009/04/27/validation-part-2-client-side.aspx
http:/ /codebetter.com/blogs/karlseguin/archive/2009/04/28/validation-part-3-server-side.aspx
これは本当に素晴らしい解決策です:)
Dはどうですか?上記のどれでもありません。 昨年このことを評価したことを覚えており、Spring.NETの検証フレームワークを使用することに決めました。
NHibernateを使用している場合は、おそらくSpring.NETの機能を使用してNHibernateも使用したいでしょう。