在构造函数注入中注入多个接口的最佳方法是什么

时间:2013-05-28 08:53:25

标签: asp.net asp.net-mvc asp.net-mvc-4

在ASP.NET MVC解决方案上,我有一个服务层,其中包含每个Model的服务。例如,对于DocumentModel,我有一个文档服务,它由UoW类实例化,它像工厂一样工作并执行保存:

public class UnitOfWork : IUnitOfWork
{
    private IRepositoryFactory _repositoryFactory;

    public UnitOfWork()
        : this(new RepositoryFactory())
    {

    }

    public UnitOfWork(IRepositoryFactory repositoryFactory)
    {
        _repositoryFactory = repositoryFactory;
    }

    private IDocumentService _DocumentService;
    public IDocumentService DocumentService
    {
        get
        {
            if (_DocumentService == null)
            {
                _DocumentService = new DocumentService(_repositoryFactory.DocumentRepository);
            }
            return _DocumentService;
        }
    }
}

现在说我需要能够从DocumentService访问2或3个其他存储库。注入这个新存储库的最佳方法是什么?在构造函数中添加它们(如果我需要添加另一个存储库可能会变得很麻烦),或者我应该注入存储库工厂(IRepositoryFactory),这将允许我在DocumentService中访问我可能需要的任何存储库。

0 个答案:

没有答案