Skip to content

Instantly share code, notes, and snippets.

@ctolkien
Created January 18, 2014 07:39
Show Gist options
  • Save ctolkien/8487470 to your computer and use it in GitHub Desktop.
Save ctolkien/8487470 to your computer and use it in GitHub Desktop.
Simple Injector - sample MVC and WebAPI Wireup.
public class DependencyConfig
{
public static void RegisterDependencies(HttpConfiguration httpConfiguration)
{
var container = new SimpleInjector.Container();
System.Web.Mvc.DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));
var services = GlobalConfiguration.Configuration.Services;
var controllerTypes = services.GetHttpControllerTypeResolver()
.GetControllerTypes(services.GetAssembliesResolver());
foreach (var controllerType in controllerTypes)
{
container.Register(controllerType);
}
GlobalConfiguration.Configuration.DependencyResolver =
new SimpleInjectorWebApiDependencyResolver(container);
}
}
public sealed class SimpleInjectorWebApiDependencyResolver
: System.Web.Http.Dependencies.IDependencyResolver
{
private readonly Container container;
public SimpleInjectorWebApiDependencyResolver(
Container container)
{
this.container = container;
}
[DebuggerStepThrough]
public IDependencyScope BeginScope()
{
return this;
}
[DebuggerStepThrough]
public object GetService(Type serviceType)
{
return ((IServiceProvider)this.container)
.GetService(serviceType);
}
[DebuggerStepThrough]
public IEnumerable<object> GetServices(Type serviceType)
{
return this.container.GetAllInstances(serviceType);
}
[DebuggerStepThrough]
public void Dispose()
{
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment