3

C#プロジェクトにはたくさんのデータクラスがあります。これらのクラスのオブジェクトを処理する前に、検証を実行する必要があります。クラスには共通のインターフェースがありません。クラスの各フィールドで実行する必要のある検証を指定できる、ある種のデザインパターンを作成しようとしています。ifelseタイプの条件のセットはありません。

仕様パターンに出くわしましたが、それはあまり説得力がないようでした。

使用できる既存のパターン/C#の方法論はありますか?

[更新:アノテーションと仕様パターンの組み合わせを使用することになりました。基本的な検証は、注釈を介して実行できます。注釈を介して検証できない特別なケースが発生した場合、それらの検証は仕様を介して記述されます]

4

3 に答える 3

3

おそらく、属性を使用して検証ルールを指定することをお勧めします。これは、すべての基本的な検証が存在する名前空間です:ComonpentModel.DataAnnotations。より洗練されたものにしたい場合は、このNuGetパッケージに多くの追加属性があります:DataAnnotationExtensions。これらは両方とも、ASP.NETのMVC控えめな検証によるクライアント側の検証をサポートします。

于 2012-07-21T19:14:41.340 に答える
1

Milimetricの回答とは別に、コードコントラクトを調べることもできます。あなたの質問から、それがあなたのニーズに合うかどうかは明らかではありません

コードコントラクトは、コード内の前提条件、事後条件、およびオブジェクト不変条件を指定する方法を提供します。前提条件は、メソッドまたはプロパティを入力するときに満たす必要のある要件です。事後条件は、メソッドまたはプロパティコードが終了するときの期待を表します。オブジェクト不変条件は、良好な状態にあるクラスの期待される状態を記述します。

于 2012-07-21T19:16:41.073 に答える
0

仕様と検証に関する有用なパターンのコレクションであるNCommonライブラリを見てください。

詳細なリンクと情報については、この投稿に対する私の回答も参照してください。

于 2012-07-23T06:50:20.490 に答える