2015-08-03 2 views
2

Я пытаюсь внедрить эту пользовательскую службу через Unity (mvc5) в actionfilter, но она равна нулю. Как я могу это реализовать?Внедрить инъекцию Unity MVC 5 в ActionFilter

public class TestFilter : ActionFilterAttribute 
{ 
    // this is always null 
    [Dependency] 
    public IUserService UserService { get; set; } 

    // other members 
} 
+0

Вы зарегистрировали 'UnityFilterAttributeFilterProvider' на' FilterProviders'? –

+0

Привет, Сэм нет, я не могу, как я могу это сделать, пожалуйста? – Pod

+1

Ниже приведено [объяснение и предложение] (http://stackoverflow.com/a/31696909/1062224) к тому же вопросу, который может вам помочь. –

ответ

1

Вы должны зарегистрироваться UnityFilterAttributeFilterProvider в виде FilterProvider первых.

Измените метод Start App_Start>UnityMvcActivator «s так:

public static void Start() 
{ 
    var container = UnityConfig.GetConfiguredContainer(); 

    FilterProviders.Providers.Remove(FilterProviders.Providers.OfType<FilterAttributeFilterProvider>().First()); 
    FilterProviders.Providers.Add(new UnityFilterAttributeFilterProvider(container)); 

    DependencyResolver.SetResolver(new UnityDependencyResolver(container)); 

    Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility.RegisterModule(typeof(UnityPerRequestHttpModule)); 
} 

Если вы не смогли найти метод. Вероятно, вы установили неверный или устаревший пакет. рассмотрите возможность установки Install-Package Unity.Mvc на консоли менеджера пакетов.

Смежные вопросы