Created
January 18, 2014 07:39
-
-
Save ctolkien/8487470 to your computer and use it in GitHub Desktop.
Simple Injector - sample MVC and WebAPI Wireup.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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