gpt4 book ai didi

asp.net-mvc - DAL -> BLL <- GUI + 组合根。如何设置 DI 绑定(bind)?

转载 作者:行者123 更新时间:2023-12-01 23:32:30 28 4
gpt4 key购买 nike

我已经制作了一个三层应用程序,其中的引用文献如answer中所述。 :

DAL with Repositories -> BLL with services and IRepository <- Asp.net mvc-app

为了通过依赖注入(inject)运行它,我看到了一些选项:
1. 从网络应用添加对 DAL 的引用,以便能够在应用程序启动时设置绑定(bind)。
2.使用带有xml配置的容器
(3.使用反射加载dal-Assembly并查找类型)

选项 1. 很简单,而且还可以将 DAL.dll 复制到 bin 中,但后来我突然重新引入了我努力摆脱的引用。现在可以直接访问存储库。选项 2 和 3 似乎不必要地复杂。

没有别的办法了吗?

最佳答案

将 ASP.NET MVC 应用程序一分为二:

  • 一部分是您的原始 ASP.NET MVC 应用程序,但没有任何逻辑。只需将组合根和您的 View (.aspx 等)保留在此项目中即可。由于这是组合根,因此您可以引用所有其他项目。然而,由于所有逻辑都已被提取,因此现在是 Humble Object ,所以拥有这个级别的所有引用文献是可以的。
  • 将所有逻辑( Controller 等)提取到应用程序模型项目中,该项目只是一个引用 ASP.NET MVC 二进制文件的普通库项目 (.dll)。该项目需要引用 BLL 来获取接口(interface),但这没关系。但是,应用程序模型和 BLL 都有效地免受 DAL 的影响。

最终的分层效果如下所示:

  • ASP.NET MVC 应用程序
  • 应用模型
  • BLL
  • Darwin

关于asp.net-mvc - DAL -> BLL <- GUI + 组合根。如何设置 DI 绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5267525/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com