0

検証アプリケーションブロックを使用した構成ベースの検証の例を探しています。私はこれを見つけまし

ELVAB5.0を使用して構成ベースの検証を実現するための代替ソリューションがあるかどうかを尋ねたいと思います。DataAnnotationsから始めましたが、アプリケーションを使用しているユーザーに応じて、一部のプロパティで異なるタイプの検証が必要になることがすぐにわかりました。

また、VABを使用した構成の例や、私が遭遇する可能性のあるアドバイスがあれば、共有してください。

4

1 に答える 1

0

これを達成するためにあなたが歩くことができるいくつかの道があります。まず、このためにルールセットを(乱用)使用できます。すべての人に適用されるルールを使用して「基本」ルールセットを作成でき、システム内の役割ごとにルールセットを作成でき、場合によってはユーザーごとにルールセットを作成できますが、もちろんそれは面倒です。

別のオプションは、ログインしたユーザーに基づいてインスタンスIConfigurationSourceを返すことができる実装を作成することです。ValidationSettingsこれで、オブジェクトを作成する方法がいくつかありValidationSettingsます。次にいくつかの例を示します。

  1. FileConfigurationSourceに基づく役割を使用して、ディスクから複数の構成ファイルをロードできます。何かのようなもの:return (new FileConfigurationSource('validation_' + role + '.config')).GetSection(sectionName);
  2. インスタンスを動的に構築ValidationSettings(およびキャッシュ)できます。この定義をデータベースに保存してロードするか(これは多くの作業になります)、コードで定義することができます(おそらくアセンブリで区切られます)。これは、コードベースの構成の例です。

また、構成の一部を複製する必要がないように、次の操作を実行できます。

  1. 複数の構成をマージします。たとえば、ベースライン検証をロール固有の検証とマージできます。これにより、ベースラインに従って手動で検証し、役割固有の検証のために2回目の検証を行う必要がなくなります。これはそのままではサポートされていませんが、これを行う方法については、こちらのブログに書いています。
  2. タイプの継承に基づいてルールをマージできます。VABは、すぐに使用できる属性ベースの検証のバリデーター継承のみをサポートしますが、これについてはブログ(ここ)に書いています。

これがお役に立てば幸いです。

于 2010-08-31T07:19:20.807 に答える