16. SingleonDemoController 컨트롤러에서 InforService 클래스 부분을 인터페이스인 IInfoService로 변경한다. 다음 코드는 완성된 SingleonDemoController 컨트롤러 클래스다.

    ▼  Controllers/SingletonDemoController.cs

    using DotNetNote.Services;
    using Microsoft.AspNetCore.Mvc;
    
    namespace DotNetNote.Controllers
    {
      public class SingletonDemoController : Controller
      {
          // [1] 생성자에 클래스 주입
          // private readonly InfoService _svc;
          
          // public SingletonDemoController(InfoService svc)
          // {
          //    _svc = svc;
          // }
          
          // [2] 생성자에 인터페이스 주입
          private readonly IInfoService _svc;
          
          public SingletonDemoController(IInfoService svc)
          {
              _svc = svc;
          }
          
          public IActionResult ConstructorInjectionDemo()
          {
    ViewData[“Url”] = _svc.GetUrl(); return View(“Index”); } public IActionResult Index() { ViewData[“Url”] = “www.gilbut.co.kr”; return View(); } public IActionResult InfoServiceDemo() { InfoService svc = new InfoService(); ViewData[“Url”] = svc.GetUrl(); return View(“Index”); } } }

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.