Внедрение свойства autofac mvc3 - PullRequest
1 голос
/ 16 августа 2011

Я работаю над проектом asp.net mvc3.Я использую autofac для DI.У меня есть атрибут Say

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

1 Ответ

2 голосов
/ 16 августа 2011

Из записи Алекса Мейера-Гливса в вики Autofac: http://code.google.com/p/autofac/wiki/Mvc3Integration#Filter_Attribute_Property_Injection

Вам необходимо вызвать метод расширения RegisterFilterProvider():

using Autofac.Integration.Mvc;

var builder = new ContainerBuilder();
builder.RegisterFilterProvider();

Это добавит свойствав атрибуты фильтра по мере необходимости (насколько я могу судить, вам не нужно регистрировать типы атрибутов в Autofac, чтобы это работало.)

Надеюсь, это поможет,

Ник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...