Привет, я использую MS Unity Container с моим приложением MVC 3.
Я хочу использовать инъекцию сеттера, чтобы внедрить зависимость для фильтра действий. У меня есть фильтр действий, который я регистрирую в global.asax, и этот фильтр действий вызывает класс репозитория для загрузки некоторых данных. Я хочу ввести конкретный класс, используя DI. Это может быть очень легко достигнуто с помощью Карта структуры. Но почему-то я не могу заставить его работать с Unity. Я перепробовал все решения по этой ссылке.
Вот мой код:
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 будет нулевым.
Любые указатели на то, как мне заставить его работать?