我怎样在C#代码中添加appSettings?
我怎样在C#代码中添加appSettings?
我想要实现的很简单:我有一个使用路径读取信息的 Windows Forms (.NET 3.5) 应用程序。用户可以通过我提供的选项表单修改此路径。
现在,我想将路径值保存到文件中以供以后使用。这将是保存到该文件的许多设置之一。该文件将直接位于应用程序文件夹中。
我了解到有三种选项可供选择:
- ConfigurationSettings 文件(appname.exe.config)
- 注册表
- 自定义 XML 文件
我读到 .NET 配置文件并不适合用于将值保存回去。至于注册表,我希望尽可能远离它。
这是否意味着我应该使用自定义 XML 文件来保存配置设置?
如果是这样,我想看到代码示例(C#)。
我已经看到了其他关于此主题的讨论,但对我来说仍然不清楚。
admin 更改状态以发布 2023年5月20日
如果您计划将文件保存在与可执行文件相同的目录中,这里有一个很好的解决方案,使用JSON格式:
using System; using System.IO; using System.Web.Script.Serialization; namespace MiscConsole { class Program { static void Main(string[] args) { MySettings settings = MySettings.Load(); Console.WriteLine("Current value of 'myInteger': " + settings.myInteger); Console.WriteLine("Incrementing 'myInteger'..."); settings.myInteger++; Console.WriteLine("Saving settings..."); settings.Save(); Console.WriteLine("Done."); Console.ReadKey(); } class MySettings : AppSettings{ public string myString = "Hello World"; public int myInteger = 1; } } public class AppSettings where T : new() { private const string DEFAULT_FILENAME = "settings.json"; public void Save(string fileName = DEFAULT_FILENAME) { File.WriteAllText(fileName, (new JavaScriptSerializer()).Serialize(this)); } public static void Save(T pSettings, string fileName = DEFAULT_FILENAME) { File.WriteAllText(fileName, (new JavaScriptSerializer()).Serialize(pSettings)); } public static T Load(string fileName = DEFAULT_FILENAME) { T t = new T(); if(File.Exists(fileName)) t = (new JavaScriptSerializer()).Deserialize (File.ReadAllText(fileName)); return t; } } }
如果你使用 Visual Studio,那么获取持久设置就相当容易。在解决方案浏览器中右键单击项目,然后选择属性。选择设置选项卡,如果还没有设置就单击超链接。
使用设置选项卡创建应用程序设置。Visual Studio 创建 Settings.settings
和 Settings.Designer.settings
文件,其中包含从 ApplicationSettingsBase 继承的单例类 Settings
。您可以从代码中访问此类以读取/写入应用程序设置:
Properties.Settings.Default["SomeProperty"] = "Some Value"; Properties.Settings.Default.Save(); // Saves settings in application configuration file
这种技术适用于控制台、Windows 表单和其他项目类型。
请注意,您需要设置设置的范围属性。如果选择应用程序范围,那么 Settings.Default.
参考:如何:使用 C# 在运行时编写用户设置 - Microsoft Docs