【发布时间】:2025-12-31 04:30:07
【问题描述】:
我们正在.net/c# 中设计一个分层的业务应用程序,并且我们正在尝试尽可能多地遵循 SOLID 原则。可测试性在我们的项目中非常重要,为此我们使用 Moq。使用 moq,除其他外,我们正在模拟我们的实体框架上下文。
由于我们测试的主要目标是主要业务层 (BL) 逻辑,因此业务层类可以注入数据访问层 (DAL) 上下文来使用。请参见下面的示例。 负责加载数据的 BL 类的示例构造函数。该类为设置访问等注入依赖项。
public LoadDataProcess(KonstruktEntities context, IDataLoadedChecker dataLoadedChecker, ILoadUserBudgetData dataLoader, ISetLineAccess setBudgetLineStatus, ILineAccessFilterHandler budgetDataLineStatusFilterHandler)
{
_context = context;
_dataLoadedchecker = dataLoadedChecker;
_dataLoader = dataLoader;
_setBudgetLineStatus = setBudgetLineStatus;
_budgetDataLineStatusFilterHandler = budgetDataLineStatusFilterHandler;
}
现在,还有其他 DAL 依赖项可以注入到我们的 BL 类中。由于这些对象是在服务层 (WCF) 中实例化的,因此我不喜欢可以注入 DAL 组件。
问题是,我们是否应该将 DAL 依赖项注入到 BL 类中?
【问题讨论】:
-
会看看这些,谢谢。你觉得我问的这个问题怎么样?
标签: c# dependency-injection inversion-of-control solid-principles business-logic-layer