Created
March 5, 2015 11:21
-
-
Save tomasaschan/0980448e3f7546f176bb to your computer and use it in GitHub Desktop.
WebApiConfig.cs
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 static class WebApiConfig | |
{ | |
public static void Configure(HttpConfiguration config) | |
{ | |
var container = new WindsorContainer() | |
// These two are extension methods from our project | |
// They just set up our DI container and register all our services | |
.ConfigureForWebApi() | |
.ConfigureForAuditLogging(); | |
config.MapHttpAttributeRoutes(); | |
config.Filters.RegisterGlobalFilters(container); // See private helper method below | |
// This service activator simply instantiates controllers by resolving them from the | |
// DI container, to allow dependency injection in controllers | |
config.Services.Replace(typeof(IHttpControllerActivator), new WindsorServiceActivator(container)); | |
// Helper class which defines a bunch of AutoMapper maps | |
AutoMapperConfig.Configure(); | |
} | |
private static void RegisterGlobalFilters(this HttpFilterCollection filters, IWindsorContainer container) | |
{ | |
var allFilters = container.ResolveAll<IActionFilter>(); | |
foreach (var filter in allFilters) | |
{ | |
filters.Add(filter); | |
} | |
foreach (var filter in container.ResolveAll<IAuthenticationFilter>()) | |
{ | |
filters.Add(filter); | |
} | |
foreach (var filter in container.ResolveAll<IAuthorizationFilter>()) | |
{ | |
filters.Add(filter); | |
} | |
foreach (var filter in container.ResolveAll<IExceptionFilter>()) | |
{ | |
filters.Add(filter); | |
} | |
foreach (var filter in container.ResolveAll<IFilter>()) | |
{ | |
filters.Add(filter); | |
} | |
foreach (var filter in container.ResolveAll<IOverrideFilter>()) | |
{ | |
filters.Add(filter); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment