将App.config应用于我的DLL程序集?

我正在编写一个类库作为抽象,用于登录我编写的任何应用程序,服务等。 我通过使其非常可配置以满足我对大多数应用程序/服务日志记录方案的需求而使其变得非常强大。

配置旨在指定以下内容:

  • 要写入什么日志记录级别
  • 写入所有级别的一个日志文件
  • 写入每个级别的单独文件
  • 记录截止(周期性,应用事件,字节大小受限)
  • 日志文件到期(文件年龄后删除日志文件)
  • 写为平面文本或XML
  • 日志文件名格式规范
  • 是否在文件名前加上日期
  • 父应用程序的名称
  • 等等等……

我已经阅读了一些关于DLL程序集配置的其他stackoverflow问题,它导致托管程序集/ app的app.config之间发生冲突。 我相信我的程序集只是提供配置文件。

这是一个很好的场景吗? 将我自己的配置烘焙到我的项目中以便我的记录器从XML文件读取以检索配置值可能是一个更好的主意吗?

你能做的是

  • 创建自定义配置部分(使用例如COnfiguration Section Designer工具)

  • 将程序集的配置放入单独的MyAssembly.config文件中

  • 从主机应用程序的配置引用程序集配置文件:

       

这样,您可以将配置“外部化”到一个单独的配置文件中,您只有一次(在程序集的项目中),而任何需要它的项目只需要在自己的配置文件中进行这些设置。

听起来像自定义配置部分将适用于您的情况。 许多库,例如企业库就是这样做的。 查看MSDN有关创建一篇文章的文章 。

.NET配置机制不是为了处理DLL的配置文件。 您应该使用适当的设置配置应用程序,并将它们传递给您从DLL实例化的类。


可以像通常为应用程序一样向DLL项目添加设置。 您需要做的就是手动将相关的部分和条目复制到应用程序的app.config中,它将起作用。

但是,仍然可以复制DLL的配置文件。 它不会被阅读。

另一种机制是为程序集配置一个单独的配置文件(* .dll.config)。 该技术如下所示: http : //blog.rodhowarth.com/2009/07/how-to-use-appconfig-file-in-dll-plugin.html

以上,模仿程序集的标准app.config技术。

在我看来,dll配置读取代码应该只存在于相应的dll和单独的类中 – 单一的责任是从* .dll.config中读取配置条目。 这是一种以类似于可执行文件可以具有的配置文件(app.config)的方式为程序集配置文件的好方法。