2009-03-26 5 views
0

Castle.Validatorコンポーネントを使用してNHibernateプロキシ検証の問題に遭遇しました。バリデーターがエンティティ・プロキシのプロパティーから属性を取得できなかったようです。NHibernateプロキシがCastle.Validatorコンポーネントの仕事を妨げる

私はCastle.Validatorランナーは、次のステートメントを使用してEMをフェッチしながら、検証が=真の継承使用して属性を定義しようとしました

property.GetCustomAttributes(typeof(IValidatorBuilder), true); 

彼らはオブジェクトのための技術的ベースクラスである一方、だから、それは属性が私の実体を形成フェッチすべきです検証中(プロキシ)?それはなぜ機能しないのですか? GetCustomAttributeは常に空の配列を返します。

答えて

0

本当にドメインモデルの一部であるため、属性は問題ありません。

私は問題の解決策を見つけたと思います。私はキャッスルにパッチを当てました。

System.Attribute.GetCustomAttributes(property); 

何の@の#$%:私の謙虚な意見では、完全に同等のコードが属性を返しながら、

property.GetCustomAttributes(true /*inherit*/); 

戻り空の配列:それは非常識だが、このコードは?

2

同じことが私に起こりました。問題は、プロキシを作成するときにNHibernateが属性を継承しないということです。 私が見つけたのは、この問題が認識されているforum postであり、簡単な 回避策(検証時にはプロキシを使用しないでください)を行いました。

私はこの検証ライブラリをお勧めします:Fluent Validation、私はまだ使っていませんが、私は主に私が(このような問題のために)属性を使用するのがうんざりです。

関連する問題