2015-08-03 61 views
2

我試圖通過Unity(mvc5)在actionfilter中注入此用戶服務,但它爲空。我怎樣才能實現這個?在ActionFilter中實現Unity MVC 5依賴注入

​​3210
+0

你在'FilterProviders'上註冊了'UnityFilterAttributeFilterProvider'嗎? –

+0

嗨,山姆不,我沒有,我該怎麼辦? – Pod

+1

這是一個[解釋和建議](http://stackoverflow.com/a/31696909/1062224)到一個類似的問題,可能會幫助你。 –

回答

1

您必須註冊UnityFilterAttributeFilterProviderFilterProvider第一。

修改App_Start>UnityMvcActivator的啓動方法是這樣的:

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