如何在域驱动模型中为基础结构层(类库)项目创建/使用配置文件
本文关键字:项目 类库 创建 配置文件 结构 为基础 模型 | 更新日期: 2023-09-27 18:31:19
在我的域驱动层中,基础架构层项目是类库项目,它不仅需要使用配置文件连接到数据库,还需要创建存储库和实体。但是,链接(在帖子末尾提到)指出类库项目不能有配置文件(我认为类库不能有 app.config)。
我的问题是,如果没有,那么如何为我的基础结构层(类库)项目创建和使用配置文件? 在哪个项目下,命名约定应该是什么?
细节:
我正在关注一本关于 C#.NET 中的领域驱动设计的书。在此模型(Visual Studio Solution)中,有四个层(Visual Studio 中的每个项目作为层),如下所示:
- 表示层项目(WPF,而不是 .NET 类库)
- 应用程序层项目(.NET 类库)
- 模型层项目(类库)
- 基础结构层(.NET 类库)
基础结构层项目(作为 .NET clas 库)需要使用配置文件,以便:
A) 创建存储库(使用存储库工厂),B) 创建实体(使用 EntityFactoryBuilder),C) 连接到数据库。
为此,我在项目"ProjectName.Infrastructure"下创建了配置文件作为"ProjectName.Infrastructure.config",方法是将其属性(使用Visual Studio)"复制到输出窗口"设置为"CopyAlways"。
但是,根据一些帖子(末尾的链接):
"类库项目(如我的"基础结构层项目")不能有配置文件(应用程序配置文件或 app.config 文件),而调用应用程序应提供/提供配置文件,并且该类库使用此提供的文件"。
链接(我研究过):
如何从我的类库应用程序访问自定义配置?
和
http://msdn.microsoft.com/en-us/library/ms229689.aspx
这个想法是将配置文件保存在客户端(应用程序或表示层级别),而不是在服务器端(类库或 DLL),为什么?
Bacause,类库/dll(基础结构层/项目)服务的用途是在多个客户端(表示层或软件应用程序)之间共享,每个客户端(软件应用程序)都配置了自己的配置设置,这些设置可以由类库(.NET 的 ConfigurationManager 类 Syste.Configuration 确保提供调用/客户端应用程序到类库的配置比率,以便类库可以使用 ConfigurationManager 使用调用/客户端软件的配置)。
换句话说,表示层的职责是提供其配置设置(在其 App.config 文件中),以便类库 (DLL) 动态(驻留在特定客户端的 App.config 文件中)(驻留在特定客户端的 App.config 文件中),如果需要,可以使用 ConfigurationManager 类(System.Configuration)。
我认为它非常有用,因为每个应用程序都有自己的配置,而类库将能够通过 .NET 系统(System.Configuration)访问调用者/客户端的配置,如上所述。
(注意:我认为类库也可以有自己的配置(可能供其内部使用),但是类库的内部配置设置与App.Config无关,我认为)