繁体   English   中英

C#和Visual Studio 2005中的程序集之间的循环引用(再次…)

[英]Circular reference between Assemblies in C# and Visual Studio 2005 (Again…)

请先阅读以下主题:

C#和Visual Studio 2005中的程序集之间的循环引用

实现接口可以解决我的问题,但不能实现我的目标。

我的目标是仅使用UI层/装配体中的BO层/装配体。 这样我就可以维护干净的层到层参考。

因为我不希望在UI层/程序集中为BO层/程序集和ORMapper层/程序集添加引用。

我只想从UI层/程序集中使用BO层/程序集。

同时有人建议我,只有使用反射而不是DI才有可能。 真的吗?

如果您确实坚持将ORM层隐藏在BO层之后,那么依赖注入应该仍然可以为您提供帮助。 请注意,尽管如此,您将无法摆脱从UI线程引用DI库的麻烦,因为那将是您的业务对象从那时开始的地方。

方法:

  • 创建一个包含用于加载数据以填充User对象的方法的接口
  • 在您的ORM项目中实现此接口
  • 在启动时,使用某种类型的DI容器在接口上注册ORM实现(阅读有关所使用的任何DI库的详细信息,例如:www.ninject.org,以获取轻量级内容)
  • User对象提供一个构造函数,该构造函数采用填充接口的实例从中加载数据

然后,当您需要User对象时,要求DI库创建它,然后DI库将构造User并为它提供对ORM实现的引用。 您还必须在DI调用中注入一些属性,以使“用户名”和“密码”能够完全填充值。

请注意,这并非DI的发明目的。应用程序代码实际上应该直接与ORM交互以创建/读取/更新/删除业务对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM