더북(TheBook)

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”); } } }

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