1

これが以前に尋ねられた場合は申し訳ありません。問題を説明するためにキーワードの多くの組み合わせを試しましたが、Google または SO で何も見つかりませんでした。

問題は単純です。オブジェクトのリストがあります。ObjectCollectionValidatorオブジェクトが検証されるように、このリストを でマークしました。ただし、リスト内のオブジェクトの一部は T 型ではなく、何らかの派生型です。

これらの派生型には、検証が必要な親に存在しないプロパティがあります。彼らは単にしません。VAB は を扱うときに継承された型をチェックしていないと思いますがObjectCollectionValidator、それは私の意見では欠陥なので、間違っていることを願っています。

ところで、私は EntLib の 4.1 を使用しています (そして、望んでいるのに、EntLib 5.0 に切り替えることができません)。

4

1 に答える 1

2

あなたが目撃しているのは、VAB 5.0 で解決された VAB 4.1 の設計上の癖です。VAB 5.0 では、コレクション プロパティを で装飾するときにObjectCollectionValidatorAttribute、実際の型を省略できます。その場合、バリデータはオブジェクトを実際の型で検証します。

VAB 5.0 に切り替えることができない場合は、独自のオブジェクト コレクション バリデータを作成するしかありません。これは本当に難しいことではありません。ObjectCollectionValidatorAttributeObjectCollectionValidatorVAB 5.0のソースを見てください。

幸運を。

于 2010-12-11T22:40:50.887 に答える