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

时间:2016-03-11 09:39:04

标签: c# mysql xml configuration-files

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

当应用程序加载时,默认情况下它连接到名为“sqlserver05”的服务器,但我希望用户/ admin能够在menustrip中配置服务器设置。所以我导航到menustrip,您可以点击“配置”,弹出另一个表格,询问服务器详细信息。

我只能通过全局字符串执行此操作,但每次应用程序运行时都必须更改设置。我是否可以不创建XML文件来读取我刚刚更改的配置设置?

很抱歉,如果我不清楚的话。非常感谢,

布兰登

3 个答案:

答案 0 :(得分:0)

是的,你可以。一种简单的方法是使用应用程序设置。这是一个开箱即用的(用户和程序)设置实现,它被序列化为XML。

请看一下古老但仍然适用的Using Settings in C#

有效地你需要做的事情:

  • 将设置文件添加到项目中。转到 Solution Explorer ,右键单击您的项目并选择 Properties 。然后选择设置。按照那里的步骤。
  • 创建一个设置。 (在以下代码中,它的名称为PropertyName
  • 在代码中获取并设置该设置。

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

    Properties.Settings.Default.Save()
    

答案 1 :(得分:0)

我认为在您的情况下,最好使用C#附带的Settings类,请查看这些链接。
12

答案 2 :(得分:0)

首先,创建一个简单的POCO对象来处理你想要设置的值,然后通过序列化器读/写这个对象。

你可以使用Javascript序列化程序生成一个JSON文件(比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 */);