自动将dll配置写入app.config或web.config

问题描述 投票:0回答:1

我已经从希望重新使用的逻辑中创建了一个dll。我创建了一个自定义配置部分,该部分可让我读取配置文件中结构良好的列表,并使用它创建一个简单的列表。

    <configuration>
       <configSections>
           <section name="FileToSearchIn" type="MyNamespace.FileToSearchIn, MyNamespace" />
       </configSections>
  <FileToSearchIn>
       <File FileName="Do Not Do Business.txt" />
       <File FileName="FBI Most Wanted.BDF" />
  </FileToSearchIn>

我的dll具有读取该特定部分的方法,可以将其适当地解析为一个列表。但是我遇到的问题是,这是一个dll,在被引用应用程序使用时将没有自己的配置。

此外,如果可以的话,我不会创建额外的代码来拥有自己的独立配置。理想情况下,我只想让调用程序来管理配置。

所以这是我的问题:

1)便利此dll用户正确创建配置的最佳方法是什么。例如:在README或dll文档中包含说明,或找到让dll编写这些配置的方法。2)是否可以使用类似配置转换(transforms for configs)的工具,如果丢失,则包含您的dll的配置?例如:xdt:Transform="InsertIfMissing"

c# dll web-config app-config
1个回答
0
投票

您可以使用ConfigurationManager.OpenExeConfiguration加载配置。该方法称为OpenExeConfiguration,但不一定必须是实际的exe,您可以使用dll。

根据代码的运行位置,您可以通过多种方式获取dll程序集的名称。如果从dll中的类运行,它将起作用。

var config = ConfigurationManager.OpenExeConfiguration($"{GetType().Assembly.Location}");
var section = config.GetSection("FileToSearchIn");

基本上该方法只是将.config添加到文件名的末尾。

© www.soinside.com 2019 - 2024. All rights reserved.