Asp.net 带OWIN的GlobalConfiguration.Configuration.DependencyResolver

Asp.net 带OWIN的GlobalConfiguration.Configuration.DependencyResolver,asp.net,dependency-injection,unity-container,asp.net-web-api2,owin,Asp.net,Dependency Injection,Unity Container,Asp.net Web Api2,Owin,现在我们正在使用OWIN中间件,我知道应该避免GlobalConfiguration 以前,我使用服务定位器(anti)模式将具体的存储库注入Web API验证过滤器。例如: public class UniqueEmployeeNameAttribute : ValidationAttribute { public IEmployeeRepository EmployeeRepository { get; set; } public UniqueEmployeeNameAtt

现在我们正在使用OWIN中间件,我知道应该避免
GlobalConfiguration

以前,我使用服务定位器(anti)模式将具体的存储库注入Web API验证过滤器。例如:

public class UniqueEmployeeNameAttribute : ValidationAttribute
{
    public IEmployeeRepository EmployeeRepository { get; set; }

    public UniqueEmployeeNameAttribute ()
        : base("Employee name must be unique.")
    {
        EmployeeRepository = (IEmployeeRepository)GlobalConfiguration.Configuration.DependencyResolver.GetService(typeof(IEmployeeRepository));
    }

    public override bool IsValid(object value)
    {
        if(value == null) { return true; }

        return !EmployeeRepository.HasName(value.ToString().Trim());
    }
}
使用OWIN时,
GlobalConfiguration.Configuration.DependencyResolver
现在是一个
EmptyResolver
System.Web.Http.Dependencies.EmptyResolver


当使用OWIN中间件时,我将如何实现上述目标?

能否显示您在Startup-Class中配置WebAPI的代码段。您好,我使用的是Ninject,我更新了nuget软件包,GlobalConfiguration.Configuration.DependencyResolver开始返回EmptyResolver:-(.我已将其更改为DependencyResolver.Current,现在它返回一个NinjectDependencyResolver并再次工作。DependencyResolver.Current来自哪个其他对象?我处于相同的情况,无法确定从何处调用您提到的依赖项解析程序。。。