我正在努力在 ASP.NET Web API 上使用 ninject、构造函数注入来获取自定义属性/过滤器。
这里有一些片段可以提供一些上下文......
//controller
[ApiAuthorise]
public IEnumerable<Thing> Get()
// Attribute definition with no body
public class ApiAuthoriseAttribute : FilterAttribute {}
// Custom Filter definition
public class ApiAuthoriseFilter : IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{ throw new NotImplementedException(); }
}
//Ninject module for my API authorisation
public class ApiAuthoriseModule : NinjectModule
{
public override void Load()
{
this.BindFilter<ApiAuthoriseFilter>(FilterScope.Action, 0)
.WhenActionMethodHas<ApiAuthoriseAttribute>()
}}
//The registerServices(IKernel kernel) method in NinjectMVC3.cs
kernel.Load(new ApiAuthoriseModule());
这就是我拥有的关于这个过滤器和属性的所有代码。据我了解,我不必将过滤器显式添加到全局过滤器集合中,因为 ninject 会处理这个问题,对吗?
如果我在我的属性中放置一个构造函数并从那里抛出一个异常,我可以看到该属性正在触发。
我的怀疑是我在 Ninject 方面做错了,但是在花了一个下午阅读其他似乎与我相同的示例后,我知道寻求帮助:)
TIA