2011-02-03 4 views
1

J'ai une couche de service dans mon application qui contient des services tels que AccountService, UserService et DocumentService.Services d'appel au sein des services

J'utilise StructureMap pour mon injection de dépendance si le constructeur de mon service pourrait ressembler à ceci:

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

Maintenant, si je besoin d'accéder à dire UserServic e tout y est-il une bonne forme d'avoir les éléments suivants ?

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

Répondre

0

Oui, c'est parfaitement bien. Vous pouvez télécharger le code et regarder le episodes Rob Conery préparé.

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"); 
    } 
    ... 
} 

Il injecte le OrderService dans le CatalogService.