小编Cat*_*mas的帖子

尽管已注册为暂态类,但AbstractValidator类始终为单例

我正在使用SimpleInjector 4和FluentValidation7。我AbstractValidator的依赖于我DbContext

public class Validator : AbstractValidator<LocationModel>
{
    public LocationModelValidator(IReadOnlyRepository repository)
    {
        // Check the database to see if this location is already present
        RuleFor(x => x.LocationId).Must(x => !repository.Location.Any(i => i.LocationId == x)).WithMessage("A Location with this ID already exists.");
    }
}
Run Code Online (Sandbox Code Playgroud)

我的合成根看起来如下:

var container = new Container();
container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();

container.Register<IReadOnlyRepository, LocationDbContext>(Lifestyle.Scoped);
container.Register<IValidatorFactory>(() => new ServiceProviderValidatorFactory(GlobalConfiguration.Configuration));
container.Register(typeof(IValidator<>), assemblies, Lifestyle.Scoped);

container.RegisterWebApiControllers(GlobalConfiguration.Configuration);

container.Verify();

GlobalConfiguration.Configuration.DependencyResolver = 
    new SimpleInjectorWebApiDependencyResolver(container);
Run Code Online (Sandbox Code Playgroud)

ValidatorFactory的实现

public class ServiceProviderValidatorFactory : ValidatorFactoryBase
{
    private readonly HttpConfiguration …
Run Code Online (Sandbox Code Playgroud)

c# asp.net fluentvalidation simple-injector

5
推荐指数
0
解决办法
501
查看次数

标签 统计

asp.net ×1

c# ×1

fluentvalidation ×1

simple-injector ×1