【发布时间】:2012-08-21 14:32:19
【问题描述】:
您好,我在 MVC 3 应用程序中使用 MS Unity Container。
我想使用 setter 注入来为 Action 过滤器注入依赖项。我有一个动作过滤器,我在 global.asax 中注册,这个动作过滤器调用一个存储库类来加载一些数据。我想使用 DI 注入具体类。它可以是非常easily achieved with StructureMap。但不知何故,我无法让它与 Unity 一起使用。我已经尝试了 link 的所有解决方案。
这是我的代码:
MyActionFilter.cs
public class GlobalViewBagActionFilter : ActionFilterAttribute
{
public IUserRepo UserRepo { get; set; }
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
var testVal = UserRepo.LoadData();
}
}
在 Global.asax.cs 中注册操作过滤器
private static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new GlobalViewBagActionFilter());
}
在Appliation_Start上调用上述方法进行注册
RegisterGlobalFilters(GlobalFilters.Filters);
我已经尝试了许多可能的代码块来注册课程,但没有任何效果。要么我会得到一个异常,要么在操作过滤器上,UserRepo 属性将为空。
关于如何让它工作的任何指示?
【问题讨论】:
标签: asp.net-mvc-3 dependency-injection unity-container