【发布时间】:2011-12-24 18:14:54
【问题描述】:
我一直在尝试将依赖项注入自定义授权过滤器中。
OutletService(这是我尝试注入过滤器的服务)
public class OutletService : IOutletService
{
#region Fields
private readonly IRepository<Outlet> _outletRepository;
#endregion
#region Ctor
public OutletService(IRepository<Outlet> outletRepository)
{
_outletRepository = outletRepository;
}
#endregion
// Rest of class omitted
CustomAuthorizeAttribute(部分,此示例的名称也已更改)
public class MyAuthorizeAttribute : AuthorizeAttribute
{
private IOutletService _outletService;
private IModuleService _moduleService;
public string Action { get; set; }
public int Level { get; set; }
public MarcusAuthorizeAttribute()
{
}
[Inject]
public MyAuthorizeAttribute(IOutletService outletService, IModuleService moduleService)
{
_outletService = outletService;
_moduleService = moduleService;
}
我尝试使用这篇文章作为示例,但是一旦我连接它,我的路由似乎都不起作用(IIS Express 返回 401/找不到?)
Injecting dependencies into ASP.NET MVC 3 action filters. What's wrong with this approach?
如果有人有任何想法或建议,我将不胜感激! (它现在真的把我逼到了墙角!)
谢谢!
【问题讨论】:
-
试试 Ninject.MVC3 的 BindFilter 方法。 [这里是一个例子][1] [1]:stackoverflow.com/questions/7663597/…
-
@Brook 当我尝试这样做时,它会杀死应用程序并给出 401?
-
供您理解。属性始终由 .NET 框架使用无参数构造函数创建。添加非无参数 ctor 绝对没有意义。
-
关于这个主题还有很多其他的帖子:例如。 stackoverflow.com/questions/7014095/…
标签: asp.net-mvc-3 ninject