Sunday, 17 September 2017

Dependency Injection, IOC container using StructureMap with webapi and console app

StructureMap for .Net WebApi
==================================================================
Install Structuremap webapi from Nuget

1. Install-Package StructureMap.WebApi2 -Version 3.0.4.125

Configure Structure Map

1.  Global.asax

        protected void Application_Start()
        {
       
            StructuremapWebApi.Start();

        }
2.  DefaultRegistry .cs

public class DefaultRegistry : Registry {
        #region Constructors and Destructors

        public DefaultRegistry() {
            Scan(
                scan => {
                    scan.TheCallingAssembly();
                    scan.WithDefaultConventions();
                });
            For<IHealthCheckService>().Use<HealthCheckService>();
        }

        #endregion
    }

Use StructureMap

[Route("health")]
    public class HealthController : ApiController
    {
        private readonly IHealthCheckService _healthCheckService;

        public HealthController(IHealthCheckService healthCheckService)
        {
            _healthCheckService = healthCheckService;
        }

        [HttpGet]
        public IHttpActionResult Get()
        {
            return Ok(_healthCheckService.PerformHealthCheck());
        }
    }

Structure map for console app
==============================================

https://ardalis.com/using-structuremap-4-in-a-console-app

No comments:

Post a Comment