Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save blachniet/2344593 to your computer and use it in GitHub Desktop.
Save blachniet/2344593 to your computer and use it in GitHub Desktop.
ServiceResolverAdapter: Allows you to use the ASP.NET MVC DependencyResolver for ASP.NET Web API
/// <summary>
/// Starts the application
/// </summary>
public static void Start()
{
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
bootstrapper.Initialize(CreateKernel);
System.Web.Http.GlobalConfiguration.Configuration.ServiceResolver.SetResolver(System.Web.Mvc.DependencyResolver.Current.ToServiceResolver());
}
public class ServiceResolverAdapter : System.Web.Http.Services.IDependencyResolver
{
private readonly System.Web.Mvc.IDependencyResolver dependencyResolver;
public ServiceResolverAdapter(System.Web.Mvc.IDependencyResolver dependencyResolver)
{
if (dependencyResolver == null) throw new ArgumentNullException("dependencyResolver");
this.dependencyResolver = dependencyResolver;
}
public object GetService(Type serviceType)
{
return dependencyResolver.GetService(serviceType);
}
public IEnumerable<object> GetServices(Type serviceType)
{
return dependencyResolver.GetServices(serviceType);
}
}
public static class ServiceResolverExtensions
{
public static System.Web.Http.Services.IDependencyResolver ToServiceResolver(this System.Web.Mvc.IDependencyResolver dependencyResolver)
{
return new ServiceResolverAdapter(dependencyResolver);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment