2

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
}
Sam FarajpourGhamari
  • 14,601
  • 4
  • 52
  • 56
Pod
  • 225
  • 3
  • 10

1 Answers1

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.

Sam FarajpourGhamari
  • 14,601
  • 4
  • 52
  • 56