1

在我的领域驱动层中,基础设施层项目是类库项目,它不仅需要使用配置文件连接到数据库,还需要创建存储库和实体。但是,链接(在帖子末尾提到,类库项目不能有配置文件(我认为,类库不能有 app.config)。

我的问题是,如果不是,那么如何为我的基础设施层(类库)项目创建和使用配置文件?在哪个项目下,命名约定应该是什么?

细节:

我正在关注一本关于 C#.NET 领域驱动设计的书。在此模型(Visual Studio 解决方案)中,有四个层(Visual Studio 中的每个项目作为层)命名如下:

  1. 表示层项目(WPF,不是 .NET 类库)
  2. 应用层项目(.NET 类库)
  3. 模型层项目(类库)
  4. 基础设施层(.NET 类库)

基础设施层项目(作为 .NET 类库)需要使用配置文件,以便:

A)创建存储库(使用存储库工厂),B)创建实体(使用 EntityFactoryBuilder),C)连接到数据库。

为此,我通过将其属性(使用 Visual Studio)“复制到输出窗口”设置为“CopyAlways”,将项目“ProjectName.Infrastructure”下的配置文件创建为“ProjectName.Infrastructure.config”。

但是,根据一些帖子(最后的链接):

“类库项目(如我的“基础设施层项目”)不能有配置文件(应用程序配置文件或 app.config 文件),而是调用应用程序应提供/提供配置文件,并且该类库使用此提供的文件”。

链接(我研究过的):

如何从我的类库应用程序访问自定义配置?

http://msdn.microsoft.com/en-us/library/ms229689.aspx

4

1 回答 1

4

这个想法是将配置文件保存在客户端(应用程序或表示层级别),而不是服务器端(类库或 DLL),为什么?

因为,类库/dll(基础设施层/项目)服务的目的是在多个客户端(表示层或软件应用程序)之间共享,每个客户端(软件应用程序)都配置有自己的配置设置,可以使用(在运行时)由类库(.NET 的 Syste.Configuration 的 ConfigurationManager 类确保向类库提供调用/客户端应用程序的配置,因此类库可以使用 ConfigurationManager 来使用调用/客户端软件的配置)。

换句话说,表示层有责任提供其配置设置(在其 App.config 文件中),以便类库(DLL)即时访问这些配置设置(驻留在特定客户端的 App.config 文件中)( ;在运行时),如果需要,使用(System.Configuration 的)ConfigurationManager 类。

我认为它非常有用,因为每个应用程序都有自己的配置,而类库将能够通过如上所述的 .NET System (System.Configuration) 访问调用者/客户端的配置。

(注意:我在某处读到,类库也可以有自己的配置(可能供其内部使用),但是我认为类库的内部配置设置与 App.Config 无关)

于 2013-09-19T06:17:40.647 回答