Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var container = new XyzWebApiStructureMapContainerConfigurator().Configure(GlobalConfiguration.Configuration);
- GlobalConfiguration.Configuration.Services
- .Replace(typeof(IHttpControllerActivator),
- new StructureMapHttpControllerActivator(container));
- public class XyzWebApiStructureMapContainerConfigurator
- {
- public IContainer Configure(HttpConfiguration config)
- {
- var container = new Container(new BlaWebApiRegistry());
- config.DependencyResolver = new StructureMapDependencyResolver(container);
- return container;
- }
- }
- public class StructureMapDependencyResolver : StructureMapDependencyScope, IDependencyResolver, IHttpControllerActivator
- {
- private readonly IContainer _container;
- public StructureMapDependencyResolver(IContainer container)
- : base(container)
- {
- _container = container;
- container.Inject<IHttpControllerActivator>(this);
- }
- public IDependencyScope BeginScope()
- {
- return new StructureMapDependencyScope(_container.GetNestedContainer());
- }
- public IHttpController Create(
- HttpRequestMessage request,
- HttpControllerDescriptor controllerDescriptor,
- Type controllerType)
- {
- var scope = request.GetDependencyScope();
- return scope.GetService(controllerType) as IHttpController;
- }
- }
- [RoutePrefix("api/XYZ")]
- public class BlaController : ApiController
- {
- private readonly ISomething _something;
- public BlaController(ISomething something)
- {
- _something = something;
- }
- [Route("")]
- [HttpGet]
- public IHttpActionResult Resources([FromUri] BlaRequest blaRequest)
- {
- // something exciting
- return Ok(returnObject);
- }
- }
- public static void Register(HttpConfiguration config)
- {
- // Web API configuration and services
- // Web API routes
- config.MapHttpAttributeRoutes();
- //var cors = new EnableCorsAttribute("*", "*", "*");
- config.EnableCors();
- config.Routes.MapHttpRoute(
- name: "DefaultApi",
- routeTemplate: "api/{controller}/{id}",
- defaults: new { id = RouteParameter.Optional }
- );
- }
- public class WebApiApplication : System.Web.HttpApplication
- {
- protected void Application_Start()
- {
- GlobalConfiguration.Configure(WebApiConfig.Register);
- GlobalConfiguration.Configuration.Formatters.Clear();
- GlobalConfiguration.Configuration.Formatters.Add(new JsonMediaTypeFormatter());
- var container = new XyzWebApiStructureMapContainerConfigurator().Configure(GlobalConfiguration.Configuration);
- GlobalConfiguration.Configuration.Services
- .Replace(typeof(IHttpControllerActivator),
- new StructureMapHttpControllerActivator(container));
- }
- }
- {
- swagger: "2.0",
- info: {
- version: "v1",
- title: "Bla.Di.Bla"
- },
- host: "localhost:51854",
- schemes: [
- "http"
- ],
- paths: { },
- definitions: { }
- }
- config.DependencyResolver = new StructureMapDependencyResolver(container);
- var assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(asm => asm.FullName.StartsWith("MySolution.MyProject"));
- // Web API configuration and services
- var container = new UnityContainer();
- container.RegisterTypes(
- AllClasses.FromAssemblies(assemblies),
- WithMappings.FromMatchingInterface,
- WithName.Default);
- config.DependencyResolver = new UnityDependencyResolver(container);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement