더북(TheBook)

9. 생성자 주입 방식을 사용해 의존성을 제거하는 방법을 살펴보자. 컨트롤러에서 생성자 주입 방식을 사용해 InfoService 클래스를 SingletonDemoController 컨트롤러에 주입시킨다. 읽기 전용 필드에 값을 반환하고 새롭게 만든 ConstructorInjectionDemo 액션 메서드에서 이 값을 사용해 이를 뷰 페이지에 전달한다(다음 코드의 _svc 필드는 반드시 readonly일 필요는 없다).

▼  Controllers/SingletonDemoController.cs

using DotNetNote.Services;
using Microsoft.AspNetCore.Mvc;

namespace DotNetNote.Controllers
{
  public class SingletonDemoController : Controller
  {
      private readonly InfoService _svc;
      
      public SingletonDemoController(InfoService 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”); } } }

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