在 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 中访问我可能需要的任何存储库。