C# 读/写和访问设置的最佳实践(不使用windows设置)
首先要说的是,我不能使用内置的Properties.Settings,因为这些设置存储在一个XML文件中,由几个人使用(不是同时使用,而是通过版本控制) 我正在开发一个代码生成工具,它允许用户指定所有生成文件的输出位置,以及其他特定于项目的设置 目前,在应用程序中,我有一个名为ProjectSettings的静态类,该类使用in程序为每个设置提供一个公共静态参数:C# 读/写和访问设置的最佳实践(不使用windows设置),c#,xml,C#,Xml,首先要说的是,我不能使用内置的Properties.Settings,因为这些设置存储在一个XML文件中,由几个人使用(不是同时使用,而是通过版本控制) 我正在开发一个代码生成工具,它允许用户指定所有生成文件的输出位置,以及其他特定于项目的设置 目前,在应用程序中,我有一个名为ProjectSettings的静态类,该类使用in程序为每个设置提供一个公共静态参数: public static string Settings_ScreenDefinitions_C; public static s
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中使用它来保存和读取
任何建议/建议都很好。
我不知道配置的完整列表,但我希望大多数配置可以通过在ConfigurationManager中添加不同的配置来控制,也就是说,如果您添加“MyConfiguration”,您可以在以后打开项目设置(特别是预构建和后构建事件),并且其中的配置都只用于“MyConfiguration”因此,在不同的配置之间切换只是通过选择不同的配置。下面是我如何使用枚举和字典来实现的。我使用控制台输出演示了如何编写字典的键和值
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);
}
}
}
使用系统;
使用System.Collections.Generic;
命名空间控制台应用程序
{
班级计划
{
私有枚举设置
{
屏幕定义文件,
屏幕定义文件
};
静态void Main(字符串[]参数)
{
var settings=newdictionary()
{
{Settings.ScreenDefinitionsFileC,“设置1”},
{Settings.ScreenDefinitionsFileH,“设置2”}
};
foreach(设置中的变量设置)
{
Console.WriteLine(“{0}{1}”,setting.Key,setting.Value);
}
Console.ReadKey(true);
}
}
}
通过这种方式,您可以在写入XML时枚举设置,但也可以在程序的生命周期中查找特定设置。根据您的选择,您可以使用应用程序设置
属性。设置、一个ini
文件、XML文件或序列化对象。我想您误解了我的问题。。。或者它写得很糟糕:这看起来更整洁,更容易扩展。我可能会更新我的应用程序以使用类似的东西。非常感谢。没问题@TheGrovesy很高兴它能有用:-)