小编Dan*_*618的帖子

SimpleInjector和FluentValidationFactory

我正在尝试自动验证我的视图模型,我知道我可以添加一个属性来指定我的验证,但是有一个选项可以设置工厂来自动化所有这些,我看着:这个答案并提出来了这使用简单的注射器3.1:

public class CustomValidatorFactory:ValidatorFactoryBase
    {
        private readonly Container siContainer;
        public CustomValidatorFactory(Container siContainer)
        {
            var assemblies = AppDomain.CurrentDomain.GetAssemblies().ToList();
            this.siContainer = siContainer;
            this.siContainer.Register(typeof(IValidator<>), assemblies);
        }
        public override IValidator CreateInstance(Type validatorType)
        {
            //var instances = siContainer.GetAllInstances(validatorType);
            var implementation = ((IServiceProvider)siContainer).GetService(validatorType);
            var validatorInstance = implementation != null ? (implementation as IValidator) : null;
            return validatorInstance;
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后视图模型可以是类似的

public class Person {
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# fluentvalidation simple-injector

4
推荐指数
1
解决办法
1871
查看次数

标签 统计

c# ×1

fluentvalidation ×1

simple-injector ×1