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