C# - 创建配置文件以保存应用程序中使用的数据

C# - Creating a configuration file to save data used in the application

我的项目到目前为止是一个非常有趣的旅程,但我希望保存它将连接的服务器设置的配置(使用 MySQL Net/Connector)。

应用程序加载后,默认情况下它会连接到名为 'sqlserver05' 的服务器,但我希望 user/admin 能够在菜单条中配置服务器设置。因此,我导航到菜单条,您可以单击 'Configure',其中会弹出另一个表单,询问服务器详细信息。

我可以通过一个全局字符串来做到这一点,但我必须在每次应用程序运行时更改设置。我不能创建一个 XML 文件来读取我刚刚更改的配置设置吗?

对不起,如果我不清楚。非常感谢,

布兰登

是的,你可以。一种简单的方法是使用应用程序设置。这是序列化为 XML.

的(用户和程序)设置的开箱即用实现

古人请看一下,但仍然适用Using Settings in C#

有效你要做的事情:

  • 将设置文件添加到您的项目。转到 Solution Explorer,右键单击您的项目和 select Properties。然后select设置。按照那里的步骤操作。
  • 创建设置。 (在下面的代码中它的名称是 PropertyName
  • 在代码中获取并设置该设置。

    string value = Properties.Settings.PropertyName; // get
    Properties.Settings.Default.PropertyName = value; // set
    
  • 更改任何内容后保存设置:

    Properties.Settings.Default.Save()
    

我认为你的情况最好使用 C# 附带的设置 class,请查看这些链接。
1 , 2

首先,创建一个简单的 POCO 对象来处理您要设置的值,然后通过序列化程序读取/写入该对象。

您可以使用 Javascript 序列化器生成 JSON 文件("trendy" 多于 XML,但如果您更喜欢 XML,机制保持不变):

class DatabaseSettings
{
    // Settings file path
    private const string DEFAULT_FILENAME = "settings.json";
    // Server name or IP
    public string Server { get; set; } = "127.0.0.1";
    // Port
    public int Port { get; set; } = 3306;
    // Login
    public string Login { get; set; } = "root";
    // Password
    public string Password { get; set; }

    public void Save(string fileName = DEFAULT_FILENAME)
    {
        File.WriteAllText(
            fileName,
            (new JavaScriptSerializer()).Serialize(this));
    }

    public static DatabaseSettings Load(string fileName = DEFAULT_FILENAME)
    {
        var settings = new DatabaseSettings();
        if (File.Exists(fileName))
            settings = (new JavaScriptSerializer()).Deserialize<DatabaseSettings>(File.ReadAllText(fileName));
        return settings;
    }
}

用法如下:

// Read
var settings = DatabaseSettings.Load(/* your path */);
// update
settings.Server = "10.10.10.2";
// save
settings.Save(/* your path */);