내가 .NET에서 M. 시만 책 의존성 삽입 (Dependency Injection)을 읽고 있어요, 2 장 소스 코드 : ComplexCommerce 솔루션에서 http://www.manning.com/seemann/및 다른 서비스
, CommerceWebPresentationModel, HomeController 우리가 리포지토리가 생성자로 전달되었습니다.
public HomeController(ProductRepository repository, CurrencyProvider currencyProvider)
새로 생성 된 서비스에 전달됩니다.
public ViewResult Index()
{
var currencyCode = this.CurrencyProfileService.GetCurrencyCode();
var currency = this.currencyProvider.GetCurrency(currencyCode);
var productService =
new ProductService(this.repository);
그러나 BasketController에는 BasketRepository가 삽입 된 생성자로 전달되는 서비스가 있습니다.
public BasketController(IBasketService basketService,
CurrencyProvider currencyProvider)
ProductService가 인터페이스를 구현하지 않고 HomeController를 테스트 할 수 없다는 것을 알 수 있습니다.
제 질문은 : 왜 DI 덕분에 ProductService가 인스턴스화됩니까? 내가 놓친 게 있니? 아니면 저자가 놓친 것입니까? 그렇지 않으면 정말 좋은 책 에서요?
계속 읽기; 나는 네가 결국 거기에 갈 것이라고 생각해. – Steven
모든 종속성이 생성자를 통해 주입되거나 모든 주입이 필요하지는 않습니다. 22 페이지를 참조하십시오. –
@DavidOsborne 동의하지만이 예에서는 아닙니다. 응답 해 주셔서 감사합니다. –