【发布时间】:2011-01-15 20:58:02
【问题描述】:
.NET 允许您使用 .settings 文件来管理应用程序设置。我想以我可以执行以下操作的方式分别存储生产、开发和测试设置:
EnvironmentSettings environmentSettings;
// get the current environment (Production, Development or Test)
ApplicationEnvironment Environment = (ApplicationEnvironment)
Enum.Parse(typeof(ApplicationEnvironment), Settings.Default.ApplicationEnvironment);
switch (Environment)
{
case ApplicationEnvironment.Production:
environmentSettings = Settings.Production;
break;
...
}
string reportOutputLocation = environmentSettings.ReportOutputLocation;
基本上,我想要两个单独的 Settings 类:存储所选环境和非环境特定属性的通用 Settings 类,以及名为 EnvironmentSettings 的第二个类的 3 个静态实例。使用的实例应取决于通用 Settings 类中指定的环境。
除了在静态构造函数或其他东西中手动设置所有这些设置的值之外,还有什么方法可以做到这一点?如果我必须这样做,我宁愿只拥有一个具有“DevOutputLocation”、“LiveOutputLocation”等属性的大型设置类。
我的项目中可以有多个 .settings 文件,但这只会创建不相互派生的单独类。所以我可以制作 DevelopmentSettings.settings、ProductionSettings.settings 和 TestSettings.settings 文件并赋予它们相同的属性,但是我需要到处使用一堆 switch 语句来确定要使用哪个类,因为它们不是从公共类派生的.
【问题讨论】:
-
你可以通过为每个环境使用不同的用户来做到这一点,但不知何故,我认为这会导致比它解决的问题更多。
标签: .net settings application-settings