Visual studio 2010 autofac mvc3属性注入

Visual studio 2010 autofac mvc3属性注入,visual-studio-2010,asp.net-mvc-3,dependency-injection,autofac,Visual Studio 2010,Asp.net Mvc 3,Dependency Injection,Autofac,我正在从事asp.NETMVC3项目。我正在使用autofac进行DI。 我想说的是 public class MustBeLoggedInAttribute : ActionFilterAttribute { private IUserContext Context {get;set;} public override void OnActionExecuting(ActionExecutingContext filterContext) { if

我正在从事asp.NETMVC3项目。我正在使用autofac进行DI。 我想说的是

public class MustBeLoggedInAttribute : ActionFilterAttribute
{
    private IUserContext Context {get;set;}

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
         if (!Context.IsLoggedIn)
             filterContext.Result = new RedirectResult("/users/logon");  
         base.OnActionExecuting(filterContext);
    }

}
因此,我需要将依赖项IUserContext注入这个属性。 我怎样才能做到呢。我在actionfiterprovider上到处找到代码, 但是找不到任何完整的东西

我们将不胜感激

问候


Parminder

摘自Alex Meyer Gleaves在Autofac wiki上的评论:

您需要调用
RegisterFilterProvider()
扩展方法:

using Autofac.Integration.Mvc;

var builder = new ContainerBuilder();
builder.RegisterFilterProvider();
这将根据需要将属性注入到过滤器属性中(据我所知,您不需要向Autofac注册属性类型就可以工作)

希望这有帮助


Nick

AuthorizeAttribute做了你想做的事情,在属性创建过程中没有地方让Autofac插入属性。Eranga-AuthorizeAttribute可以进行基本授权,但在任何基本操作之后都会失败。你们没有抓住要点。我问的是丙种球蛋白注射,它可以用于任何其他目的。这里的代码只是一个例子。嗨,尼古拉斯,谢谢你的回复。我找不到本例中给出的builder.RegisterController和builder.RegisterFilterProvider方法。你能告诉我问题出在哪里吗?太棒了,尼古拉斯,我忘了包括使用Autofac.Integration.Mvc;谢谢你,伙计。