【发布时间】:2021-11-15 04:14:23
【问题描述】:
我正在为 asp.net mvc 3 编写一个自定义授权过滤器。我需要将一个用户服务注入到类中,但我不知道该怎么做。
public class AuthorizeAttribute : FilterAttribute, IAuthorizationFilter
{
private IUserService userService;
private string[] roles;
public AuthorizeAttribute(params string[] roles)
{
this.roles = roles;
}
public void OnAuthorization(AuthorizationContext filterContext)
{
throw new NotImplementedException();
}
}
我正在使用 ninject 进行依赖注入。我不想使用工厂或服务定位器模式。
我的绑定在 global.acsx 中如下所示:
internal class SiteModule : NinjectModule
{
public override void Load()
{
Bind<IUserService>().To<UserService>();
}
}
【问题讨论】:
-
您确定不想使用工厂吗?在这种情况下,您必须在 Application 类中保留对内核的引用,并在控制器构造函数中手动 Get
()。在 Mvc 3 工厂中真的很有意义,因为您要覆盖原始工厂。也有 ninject nugets。 -
Jakubmal,那你能用工厂来回答吗?
标签: asp.net-mvc asp.net-mvc-3 ninject