65.9K
CodeProject 正在变化。 阅读更多。
Home

.NET 设置文件在类库项目中的应用

starIconstarIconstarIconstarIconstarIcon

5.00/5 (7投票s)

2011 年 8 月 26 日

CPOL

2分钟阅读

viewsIcon

93878

downloadIcon

2437

如何在类库项目中使用 .NET 设置文件。

引言

如果你曾经想在你的库中使用 .NET 设置文件(例如 Settings.settings),或者将设置放在外部配置文件中(例如 ExternalSettings.config),那么这篇文章就是为你准备的。

我使用库程序集配置文件(例如 MyLib.dll.config)一段时间了,必须说它们有其用途(尽管微软可能不会告诉你)。

有时,我也需要在我的库中使用常量,虽然它们可能永远不会改变,但我更喜欢将它们放在配置文件中。在我看来,使用 .NET 设置文件是最方便的方法。

使用代码

SettingsExample.PNG

库配置文件

使用代码非常简单。首先添加对 AssemblySettings.dll 的引用,然后按照以下步骤操作

  1. 将设置文件添加到你的库项目中(你可能已经有一个默认的设置文件 "Properties\Settings.settings")。
  2. 添加一个与你的设置文件同名的 partial 类。例如,如果你的文件名为 "Settings.settings",那么在 Settings.cs 文件中添加一个名为 Settings 的类。
  3. 将以下构造函数添加到 partial
  4. // Replace "Settings" with the name of your settings file.
    partial class Settings
    {
        Settings() : base(new ConfigurationFileApplicationSettings(
            Assembly.GetExecutingAssembly(), 
            typeof(Settings)
            )) { }
    }

完成了!你的设置将从库程序集的配置文件中加载。

注意事项

当你使用 Visual Studio 编译你的库时,你的 "App.config" 文件将被复制到输出目录,并以你的库的名称命名(例如 MyLib.dll.config)。但是,如果你从另一个项目添加对你的库的引用,".config" 文件将不会被复制到该项目的输出目录。你必须手动执行此操作,或者使用一些部署技术。

从 VS 自动执行此操作的一种方法是在你的项目中创建一个 "App.config" 文件的副本,并将其命名为 "MyLib.dll.config"。然后编辑文件的属性,将 "Build Action" 设置为 "Content",将 "Copy to Output Directory" 设置为 "Copy if newer"。由于该文件是一个内容文件,它将跟随你的库到任何地方 :-)。

外部配置文件

如果你想在类库或 .exe 项目中将你的设置保存在外部配置文件中,也可以这样做。唯一的区别是,你必须在上面的代码中将你的 ".config" 文件的名称替换为 Assembly.GetExecutingAssembly()

// Replace "Settings" with the name of your settings file.
partial class Settings
{
    Settings() : base(new ConfigurationFileApplicationSettings(
        "ExternalSettings.config", 
        typeof(Settings)
        )) { }
}

最后的想法

使用类库配置文件在某些情况下可能非常方便。无法开箱即用地做到这一点是微软代表开发者思考的另一个例子。

致“微软”:给我们工具。我们知道如何使用它们 ;-)。

© . All rights reserved.