// ASP.NET Core is responsible for making the controllers,
 // and for filling it its ctor parameters (dependency injection)
 public HelloWorldController(IRequestCounter counter)
 {
     // this is the opposite of dependency injection - instantiating our dependencies right here
     // "new is glue" - if your class says "new" in it, it's tightly coupled to some other class's
     // specific implementation. harder to unit test that code, harder to evolve it later.
     //_counter = new RequestCounter();
     counter.IncrementRequestCount();
     _counter = counter;
 }
        // GET: /HelloWorld/Welcome?name=Mark
        public IActionResult Welcome(string name, [FromServices] IRequestCounter counter2)
        {
            // with FromServices attribute, you can get dependencies injected into specific action methods

            ViewData["Message"]   = "Hello" + name;
            ViewData["NumTimes"]  = _counter.TotalRequestCount;
            ViewData["NumTimes2"] = counter2.TotalRequestCount;

            return(View());
        }
Esempio n. 3
0
 public ThreadMiddleware(RequestDelegate next, IRequestCounter counter, IConfiguration config)
 {
     _next    = next;
     _counter = counter;
     _config  = config;
 }