Fluent Validation と Castle Windsor を使用するように MVC プロジェクトをセットアップしましたが、すべてがうまく機能しています。カスタム Validator Factory を使用して、Entity Framework も使用していることを考慮しており、POCO クラスにラップされる動的プロキシを考慮する必要があります。ここに私のCastleWindsorValidatorFactoryがあります:
public override IValidator CreateInstance( Type validatorType)
{
if( validatorType.GetGenericArguments()[0].Namespace.Contains( "DynamicProxies" ) )
{
validatorType = Type.GetType( String.Format( "{0}.{1}[[{2}]], {3}", validatorType.Namespace, validatorType.Name, validatorType.GetGenericArguments()[0].BaseType.AssemblyQualifiedName, validatorType.Assembly.FullName ) );
}
return ResolveType.Of( validatorType ) as IValidator;
}
コントローラー アクションがモデル バインディングであるモデルのバリデーターが存在する場合、すべてがうまく機能しています。その特定のモデルのバリデーターが存在しない場合、Windsor がその型を解決できないというエラーが表示されます。
ただし、すべてのモデルにバリデーターが必要なわけではありません。空のコードを書くことはできますが、それは役に立たないコードです。バリデーターを解決しようとしているときに、エラーをキャッチして無視する必要がありますか? これで私を助ける城に組み込まれているものはありますか? 私は何をすべきか?