Reputation: 235
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
}
Upvotes: 3
Views: 3486
Reputation: 14741
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.
Upvotes: 2