Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. var container = new XyzWebApiStructureMapContainerConfigurator().Configure(GlobalConfiguration.Configuration);
  2. GlobalConfiguration.Configuration.Services
  3. .Replace(typeof(IHttpControllerActivator),
  4. new StructureMapHttpControllerActivator(container));
  5.  
  6. public class XyzWebApiStructureMapContainerConfigurator
  7. {
  8. public IContainer Configure(HttpConfiguration config)
  9. {
  10. var container = new Container(new BlaWebApiRegistry());
  11. config.DependencyResolver = new StructureMapDependencyResolver(container);
  12. return container;
  13. }
  14. }
  15.  
  16. public class StructureMapDependencyResolver : StructureMapDependencyScope, IDependencyResolver, IHttpControllerActivator
  17. {
  18. private readonly IContainer _container;
  19.  
  20. public StructureMapDependencyResolver(IContainer container)
  21. : base(container)
  22. {
  23. _container = container;
  24. container.Inject<IHttpControllerActivator>(this);
  25. }
  26.  
  27. public IDependencyScope BeginScope()
  28. {
  29. return new StructureMapDependencyScope(_container.GetNestedContainer());
  30. }
  31.  
  32. public IHttpController Create(
  33. HttpRequestMessage request,
  34. HttpControllerDescriptor controllerDescriptor,
  35. Type controllerType)
  36. {
  37. var scope = request.GetDependencyScope();
  38. return scope.GetService(controllerType) as IHttpController;
  39. }
  40. }
  41.  
  42. [RoutePrefix("api/XYZ")]
  43. public class BlaController : ApiController
  44. {
  45. private readonly ISomething _something;
  46.  
  47. public BlaController(ISomething something)
  48. {
  49. _something = something;
  50. }
  51.  
  52. [Route("")]
  53. [HttpGet]
  54. public IHttpActionResult Resources([FromUri] BlaRequest blaRequest)
  55. {
  56. // something exciting
  57. return Ok(returnObject);
  58. }
  59. }
  60.  
  61. public static void Register(HttpConfiguration config)
  62. {
  63. // Web API configuration and services
  64.  
  65. // Web API routes
  66. config.MapHttpAttributeRoutes();
  67.  
  68. //var cors = new EnableCorsAttribute("*", "*", "*");
  69. config.EnableCors();
  70.  
  71. config.Routes.MapHttpRoute(
  72. name: "DefaultApi",
  73. routeTemplate: "api/{controller}/{id}",
  74. defaults: new { id = RouteParameter.Optional }
  75. );
  76. }
  77.  
  78. public class WebApiApplication : System.Web.HttpApplication
  79. {
  80. protected void Application_Start()
  81. {
  82. GlobalConfiguration.Configure(WebApiConfig.Register);
  83.  
  84. GlobalConfiguration.Configuration.Formatters.Clear();
  85. GlobalConfiguration.Configuration.Formatters.Add(new JsonMediaTypeFormatter());
  86.  
  87. var container = new XyzWebApiStructureMapContainerConfigurator().Configure(GlobalConfiguration.Configuration);
  88. GlobalConfiguration.Configuration.Services
  89. .Replace(typeof(IHttpControllerActivator),
  90. new StructureMapHttpControllerActivator(container));
  91. }
  92. }
  93.  
  94. {
  95. swagger: "2.0",
  96. info: {
  97. version: "v1",
  98. title: "Bla.Di.Bla"
  99. },
  100. host: "localhost:51854",
  101. schemes: [
  102. "http"
  103. ],
  104. paths: { },
  105. definitions: { }
  106. }
  107.  
  108. config.DependencyResolver = new StructureMapDependencyResolver(container);
  109.  
  110. var assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(asm => asm.FullName.StartsWith("MySolution.MyProject"));
  111.  
  112. // Web API configuration and services
  113. var container = new UnityContainer();
  114. container.RegisterTypes(
  115. AllClasses.FromAssemblies(assemblies),
  116. WithMappings.FromMatchingInterface,
  117. WithName.Default);
  118.  
  119. config.DependencyResolver = new UnityDependencyResolver(container);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement