1
多次在MVC項目IM工作,我用流利的驗證來實現一些驗證邏輯,我定義我的UnityValidatorFactory
如下:流利的驗證和IOC容器:的CreateInstance稱爲MVC Web應用程序
public class UnityValidatorFactory : ValidatorFactoryBase
{
private readonly IUnityContainer _container;
public UnityValidatorFactory(IUnityContainer container)
{
_container = container;
}
public override IValidator CreateInstance(Type validatorType)
{
if (_container.IsRegistered(validatorType))
{
return _container.Resolve(validatorType) as IValidator;
}
return null;
}
}
在全球性的。 ASAX註冊我的階級是這樣的:
var validationFactory = new UnityValidatorFactory(container);
var fluentValidationModelValidatorProvider = new FluentValidationModelValidatorProvider(validationFactory);
我定義我驗證了我的視圖模型:
public class ServiceRequestViewModelValidator : AbstractValidator<ServiceRequestViewModel>
{
public ServiceRequestViewModelValidator()
{
// many validation rules here...
}
}
我註冊團結我的驗證:
container.RegisterType<IValidator<ServiceRequestViewModel>, ServiceRequestViewModelValidator>();
當我ServiceRequestViewModel的方法CreateInstance叫了這麼多次和 構造ServiceRequestViewModelValidator,以及數據發佈同類型的變量的操作。 因爲我實施的驗證規則非常耗時,所以我不會讓他們多執行一次。此外,我不明白他們爲什麼要打一次以上。