我怎样在C#代码中添加appSettings?

24 浏览
0 Comments

我怎样在C#代码中添加appSettings?

我想要实现的很简单:我有一个使用路径读取信息的 Windows Forms (.NET 3.5) 应用程序。用户可以通过我提供的选项表单修改此路径。

现在,我想将路径值保存到文件中以供以后使用。这将是保存到该文件的许多设置之一。该文件将直接位于应用程序文件夹中。

我了解到有三种选项可供选择:

  • ConfigurationSettings 文件(appname.exe.config)
  • 注册表
  • 自定义 XML 文件

我读到 .NET 配置文件并不适合用于将值保存回去。至于注册表,我希望尽可能远离它。

这是否意味着我应该使用自定义 XML 文件来保存配置设置?

如果是这样,我想看到代码示例(C#)。

我已经看到了其他关于此主题的讨论,但对我来说仍然不清楚。

admin 更改状态以发布 2023年5月20日
0
0 Comments

如果您计划将文件保存在与可执行文件相同的目录中,这里有一个很好的解决方案,使用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;
        }
    }
}

0
0 Comments

如果你使用 Visual Studio,那么获取持久设置就相当容易。在解决方案浏览器中右键单击项目,然后选择属性。选择设置选项卡,如果还没有设置就单击超链接。

使用设置选项卡创建应用程序设置。Visual Studio 创建 Settings.settingsSettings.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

0