2011-02-03 5 views
1

AccountService, UserServiceDocumentService과 같은 서비스가 포함 된 응용 프로그램 계층이 있습니다.서비스 내에서 서비스 호출

내 서비스의 생성자는 다음과 같을 수 있도록 내 의존성 주입을위한 StructureMap를 사용 : 이제

public AccountService(IAccountRepository repo) 
{ 
    this.accountRepository = repo; 
} 

을 나는 그것이 좋은 형태는 다음을 가지고있다있는 반면 UserServic 전자 말에 액세스해야하는 경우 ?

public AccountService(IAccountRepository repo, IUserService user) 
{ 
    this.accountRepository = repo; 
    this.userService = user; 
} 

답변

0

예, 완벽합니다. 코드를 다운로드하고 episodes Rob Conery가 준비된 것을 볼 수 있습니다.

public class CatalogService : Commerce.Services.ICatalogService 
{ 
    ICatalogRepository _repository = null; 
    IOrderService _orderService = null; 

    /// <summary> 
    /// Creates a CatalogService based on the passed-in repository. 
    /// </summary> 
    /// <param name="repository">An ICatalogRepository</param> 
    public CatalogService(
     ICatalogRepository repository, IOrderService orderService) 
    { 
     _repository = repository; 
     _orderService = orderService; 

     if (_repository == null) 
      throw new InvalidOperationException("Repository cannot be null"); 
    } 
    ... 
} 

그는 CatalogService에 OrderService를 삽입합니다.