首页 文章

将app.config与类库一起使用

提问于
浏览
53

我经常需要创建一个.Net类库,它需要app.config来处理诸如数据库连接字符串之类的事情 . 但是,这些设置必须位于调用应用程序的app.config或web.config中 . 如果我想在多个应用程序中分发DLL,那就很麻烦了,因为我必须将这些设置复制到每个应用程序的app.config中 .

我考虑过从类库中通过代码手动读取配置设置,但这也是一个很大的痛苦 . 有没有人有任何关于在类库中加载app.config设置的最佳方法的建议?

9 回答

  • 5

    您可以做的一件事就是为您的库创建一个单独的设置文件,然后您只需要在您的条目应用程序配置文件中引用它 .

    有关此信息,请参阅this question中的accepted answer .

  • 3

    我知道这不是你想听到的,但入口点的配置文件是放置这些设置的合理位置 . 如果每个库都需要自己的配置文件,那么编辑每个文件而不是只编辑一个文件会很繁琐 .

    我将有一个文本文件,默认设置包含在库中(作为项目的一部分),可以与库一起分发以进行默认设置配置(可以将其复制并粘贴到配置文件中) .

  • 3

    让每个类库在自定义ConfigurationSection中定义配置设置 .

    然后将自定义节处理程序添加到process.exe.config文件中 .

    This MSDN article的解释非常全面,VB和C#都有例子 .

    它涉及编写一些非常重复的代码--Dmitryr创建了this tool来从XML配置的片段生成配置部分,这可能会有所帮助 .

  • 1

    这是另一种选择 .

    而不是试图找到方法“合并”你的app.configs,甚至在你的DLL中放置配置项(并试图解决“设计”是什么),试试这个:

    创建您的DLL,但在需要配置项的位置,创建一个公共属性 . 在DLL中实例化类时,可以使用拥有应用程序中的配置项填充这些属性 .

    现在,配置在所有者级别进行管理,并且DLL是可移植的,因为您必须在运行时传递所需的内容 .

    没有DLL.config!

  • 0

    转到应用程序属性 - >设置选项卡;在那里添加你的设置 .

    使用 Properties.Settings.Default.<SettingName> 访问该设置 . 而已!

  • 0

    为每个类库使用自己的配置文件不是(大)问题 . 如果您使用vb.net,您可以通过“设置”页面上的“我的项目”面板添加值 .

    您唯一要做的就是在类库设置上调用“My.Settings.Save”(而不仅仅是在主应用程序设置文件中) .

    这也适用于c#(但可能需要更多的手动工作) .

  • 15

    如果您使用的是 NUnit ,请将您的app.config文件命名为* .nunit项目文件名 . 例如,如果您调用项目"ClassLibraryA.nunit",则将类库配置文件命名为"ClassLibraryA.config" . 它们还需要驻留在同一文件夹/目录中 . NUnit实际上使用它作为主配置文件 .

    如果你有 custom code ,那么你需要确保你的app.config(或web.config)引用了类库的app.config文件 . 应用程序只关心root app.config或web.config . 因此,您需要添加指向类库app.config的自定义配置部分 .

  • 0

    您可以创建自己的XML文件(如果需要,可以将其称为appConfig.xml或其他内容),使用System.Xml而不是System.Configuration来读取它,并将其包含在您的dll旁边 .

  • 0

    在另一个解决方案中创建您的类库 . 如果将它们保存在同一解决方案中,则会读取最高层次结构中的app.config .

相关问题