1

在 ASP.NET MVC 解决方案上,我有一个服务层,其中包含每个模型的服务。例如,对于 DocumentModel,我有 Document Service,它由 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 中访问我可能需要的任何存储库。

4

0 回答 0