我已经在我的WebAPI项目中设置了Unity,并且在我的一个ApiControllers中使用JSON.parse('{"Test": {"Foo": 1, "Bar": 2} }', function(prop, value) {
var lower = prop.toLowerCase();
if(prop === lower) return value;
else this[lower] = value;
});
时,我正在正确地注入对象。我现在尝试在DependencyAttribute
中使用完全相同的方法,但它没有解析(解析为null)。
这解析为null:
ActionFilterAttribute
这解析为对象的实例:
public class ValidateEntryAttribute : ActionFilterAttribute
{
[Dependency]
internal ApplicationUserManager UserManager { get; set; }
// ...
}
我的UnityConfig看起来像这样:
public class LayoutController : BaseApiController
{
[Dependency]
internal ApplicationUserManager UserManager { get; set; }
}
我错过了什么?
答案 0 :(得分:2)
您可以更改设计过滤器的方法以使它们passive,然后对用于读取它们的操作过滤器使用真正的依赖注入(构造函数注入),如this IActionFilter
example或{ {3}}
或者,您可以按照this AuthorizeAttribute
example所示的方式破解框架,以便在操作过滤器属性上获取属性注入。但是随后你会陷入财产注入以及随之而来的所有here。