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





5.00/5 (7投票s)
如何在类库项目中使用 .NET 设置文件。
引言
如果你曾经想在你的库中使用 .NET 设置文件(例如 Settings.settings
),或者将设置放在外部配置文件中(例如 ExternalSettings.config),那么这篇文章就是为你准备的。
我使用库程序集配置文件(例如 MyLib.dll.config)一段时间了,必须说它们有其用途(尽管微软可能不会告诉你)。
有时,我也需要在我的库中使用常量,虽然它们可能永远不会改变,但我更喜欢将它们放在配置文件中。在我看来,使用 .NET 设置文件是最方便的方法。
使用代码
库配置文件
使用代码非常简单。首先添加对 AssemblySettings.dll 的引用,然后按照以下步骤操作
- 将设置文件添加到你的库项目中(你可能已经有一个默认的设置文件 "Properties\Settings.settings")。
- 添加一个与你的设置文件同名的
partial
类。例如,如果你的文件名为 "Settings.settings",那么在 Settings.cs 文件中添加一个名为Settings
的类。 - 将以下构造函数添加到
partial
类
// 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)
)) { }
}
最后的想法
使用类库配置文件在某些情况下可能非常方便。无法开箱即用地做到这一点是微软代表开发者思考的另一个例子。
致“微软”:给我们工具。我们知道如何使用它们 ;-)。