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,以及数据发布同类型的变量的操作。 因为我实施的验证规则非常耗时,所以我不会让他们多执行一次。此外,我不明白他们为什么要打一次以上。