Asp.net 带OWIN的GlobalConfiguration.Configuration.DependencyResolver
现在我们正在使用OWIN中间件,我知道应该避免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
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来自哪个其他对象?我处于相同的情况,无法确定从何处调用您提到的依赖项解析程序。。。