1
バリデータをnhibernateエンティティにバインドするために、structuremapと流暢なバリデーションアセンブリスキャナを使用するにはどうすればよいですか? srFluent ValidationおよびStructuremap AssemblyScannerの実装。 ASP.NET MVC3
バリデータをnhibernateエンティティにバインドするために、structuremapと流暢なバリデーションアセンブリスキャナを使用するにはどうすればよいですか? srFluent ValidationおよびStructuremap AssemblyScannerの実装。 ASP.NET MVC3
ObjectFactory.Configure(cfg => cfg.AddRegistry(new MyRegistry()));
ControllerBuilder.Current.SetControllerFactory(new StructureMapControllerFactory());
//Configure FV to use StructureMap
var factory = new StructureMapValidatorFactory();
//Tell MVC to use FV for validation
ModelValidatorProviders.Providers.Add(new FluentValidationModelValidatorProvider(factory));
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
public class StructureMapValidatorFactory : ValidatorFactoryBase
{
public override IValidator CreateInstance(Type validatorType)
{
return ObjectFactory.TryGetInstance(validatorType) as IValidator;
}
}
public class MyRegistry : Registry
{
public MyRegistry()
{
AssemblyScanner.FindValidatorsInAssemblyContaining<LiveReport.Domain.Validation.PersonValidator>()
.ForEach(result =>
{
For(result.InterfaceType)
.Singleton()
.Use(result.ValidatorType);
});
}
}
シングルトンを指定するときは注意してください。バリデーターがデータベースを呼び出すと、それが使用している接続がその間に処分される可能性があります。 –
@ vartan-arabyan、私は私のすべてのビューモデル(私のプロジェクトでは100以上)を登録する必要がありますか?まあ!いいえ? –