1

AccountServiceアプリケーションに、 、などのサービスを含むサービス レイヤーがありUserServiceますDocumentService

依存関係の挿入に StructureMap を使用しているため、サービスのコンストラクターは次のようになります。

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

今、私がUserServiceを言うためにアクセスする必要がある場合、次のものを持っているのは良い形ですか?

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

1 に答える 1

0

はい、まったく問題ありません。コードをダウンロードして、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");
    }
    ...
}

彼は OrderService を CatalogService に注入します。

于 2011-02-04T10:09:43.967 に答える