首先要说的是我不能使用内置的Properties.Settings,因为这些设置存储在一个XML文件中,供多个人使用(不是同时使用,而是通过版本控制)。 / p>
我正在开发一个代码生成工具,允许用户具体说明所有生成文件的输出位置,以及其他项目特定设置。
目前,在应用程序中我有一个名为ProjectSettings的静态类,它使用in程序为每个设置都有一个公共静态参数:
public static string Settings_ScreenDefinitions_C;
public static string Settings_ScreenDefinitions_H;
// Etc currently there are about 20 of these.
在整个项目中是否有更好的存储和访问方式?
其次这些设置使用上述ProjectSettings类中每个设置的读/写调用存储在XML中:
xmlWriter.WriteElementString("ScreenDefinitionsFileC", ProjectSettings.Settings_ScreenDefinitions_C);
xmlWriter.WriteElementString("ScreenDefinitionsFileH", ProjectSettings.Settings_ScreenDefinitions_H);
// Again there is around 20 of these, one for each property and the same for reading them back out.
当我添加更多属性时,我可以帮助但是觉得必须有更优雅的方法来构建类(可能是字典?)以及在XML中使用它来保存和阅读的更好方法?
任何建议/指示都会很棒。
答案 0 :(得分:1)
以下是我如何使用枚举和字典来完成它。我已经使用控制台输出来显示如何编写字典的键和值。
using System;
using System.Collections.Generic;
namespace ConsoleApplication
{
class Program
{
private enum Settings
{
ScreenDefinitionsFileC,
ScreenDefinitionsFileH
};
static void Main(string[] args)
{
var settings= new Dictionary<Settings, string>()
{
{Settings.ScreenDefinitionsFileC, "Setting 1"},
{Settings.ScreenDefinitionsFileH, "Setting 2"}
};
foreach (var setting in settings)
{
Console.WriteLine("{0} {1}", setting.Key, setting.Value);
}
Console.ReadKey(true);
}
}
}
这样,您可以在写入XML时枚举您的设置,但也可以在程序的生命周期内查找特定设置。
答案 1 :(得分:0)
我不知道配置的完整列表,但我希望大多数配置可以通过在configurationManger中添加不同的配置来控制,即如果你添加&#34; MyConfiguration&#34;您可以在之后打开项目设置(特别是预构建和后期构建事件),其中的配置仅适用于&#34; myConfiguration&#34;因此,只能通过选择不同的配置来切换不同的配置。