Услуги вызова в рамках услуг - PullRequest
1 голос
/ 03 февраля 2011

В моем приложении есть сервисный уровень, который содержит такие сервисы, как AccountService, UserService и DocumentService.

Я использую StructureMap для внедрения зависимостей, поэтому конструктор моего сервиса может выглядеть так:

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

Теперь, если мне нужен доступ, чтобы сказать UserServic e, в то время как это хорошо, иметь следующее?

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

1 Ответ

0 голосов
/ 04 февраля 2011

Да, это прекрасно.Вы можете скачать код и посмотреть подготовленные эпизоды Роба Конери.

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

Он внедряет Службу заказов в Службу каталогов.

...