【发布时间】:2013-09-25 20:24:47
【问题描述】:
我正在尝试找到一种方法来使用 Ninject 将构造函数依赖项注入过滤器。我发现许多描述属性注入的文章现在不建议使用,但其余文章涉及使用工厂、定位器、全局包装器或存根属性的复杂设置。
有了 MVC,您几乎可以覆盖其操作的任何部分
现在允许注入的正确方法是什么,或者如果您使用某些类型的过滤器与其他过滤器相比,它会变得更容易吗?
public class UserValidationAttribute : ActionFilterAttribute
{
private IRepository repository;
public UserValidationAttribute(IRepository repository)
{
this.repository = repository;
}
}
【问题讨论】:
-
请注意 - 普遍的共识似乎是属性注入应该用于可选依赖项,但构造函数注入用于必需的依赖项(哪种有意义 - 没有它就无法构造类型所需的依赖项,但可能不会根据容器可用的服务来注入属性)
-
我现在已经实现了一个方法,你有一个全局过滤器,它通过查看是否存在令牌属性来检查它是否适用。目前我没有得到的是,当我在操作上使用令牌属性并使用
filterContext.ActionDescriptor.IsDefined(typeof(MyTokenAttribute), true)时,我得到true,但如果我只将令牌属性放在控制器上,我得到false。跨度>
标签: c# asp.net-mvc ninject