.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 类中指定的环境。
有没有什么方法可以做到这一点,而不是在静态构造函数或其他东西中手动设置所有这些设置的值?如果我必须这样做,我宁愿只拥有一个大的 Settings 类,其中包含“DevOutputLocation”、“LiveOutputLocation”等属性。
我的项目中可以有多个 .settings 文件,但这只是创建了不从彼此派生的单独的类。因此,我可以创建 DevelopmentSettings.settings、ProductionSettings.settings 和 TestSettings.settings 文件并赋予它们相同的属性,但是随后我需要到处使用一堆 switch 语句来确定要使用哪个类,因为它们不是从公共类派生的。
一种想法是,在一系列静态值之间切换听起来像是一种相当令人担忧的做事方式。
我建议查找单例模式。此模式为您提供了一个在该类的所有引用之间共享的单个类实例,但是当它首次加载时,您可以执行正常的初始化位来检查您的环境并相应地设置值。
同样,您不会考虑设计一个接口并让每个类实现该接口,而不是使用开关来作用于不同的类吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)