Implement Unity MVC 5 dependency injection in ActionFilter

一个人想着一个人 提交于 2019-12-08 01:39:17

问题


I'm trying to inject this user service via Unity (mvc5) in an actionfilter but it is null. How can I implement this?

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

    // other members
}

回答1:


You must register UnityFilterAttributeFilterProvider as a FilterProvider first.

Modify the App_Start > UnityMvcActivator's Start method like this:

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));
}

If you could not find the method. You probably installed wrong or out of date package. consider installing Install-Package Unity.Mvc on the package manager console.



来源:https://stackoverflow.com/questions/31786675/implement-unity-mvc-5-dependency-injection-in-actionfilter

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!