请先阅读以下主题:
C# 和 Visual Studio 2005 中的程序集之间的循环引用
实现接口解决了我的问题,但没有实现我的目标。
我的目标是只使用来自 UI 层/程序集的 BO 层/程序集。这样我就可以保持干净的层到层参考。
因为我不想在 UI 层/程序集中为 BO 层/程序集和 ORMapper-层/程序集添加引用。
我只想在 UI 层/程序集中使用 BO 层/程序集。
同时有人建议我,只能使用反射,而不是 DI。真的吗?
请先阅读以下主题:
C# 和 Visual Studio 2005 中的程序集之间的循环引用
实现接口解决了我的问题,但没有实现我的目标。
我的目标是只使用来自 UI 层/程序集的 BO 层/程序集。这样我就可以保持干净的层到层参考。
因为我不想在 UI 层/程序集中为 BO 层/程序集和 ORMapper-层/程序集添加引用。
我只想在 UI 层/程序集中使用 BO 层/程序集。
同时有人建议我,只能使用反射,而不是 DI。真的吗?
如果您真的坚持将 ORM 层隐藏在 BO 层之后,那么依赖注入应该仍然可以帮助您。请注意,您将无法避免从您的 UI 线程中引用 DI 库,因为那将是您的业务对象的来源。
方法:
User
对象的方法User
对象提供一个构造函数,该构造函数采用填充接口的实例来加载数据然后当你需要一个User
对象时,你要求 DI 库创建它,DI 库将构造它User
并给它一个 ORM 实现的引用。您还必须在 DI 调用中注入一些属性,以便“用户名”和“密码”能够用值完全填充它。
请注意,这并不是 DI 的发明目的……应用程序代码实际上应该直接处理 ORM 以创建/读取/更新/删除业务对象。