2015-08-03 25 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