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()
首先,创建一个简单的 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 */);
我的项目到目前为止是一个非常有趣的旅程,但我希望保存它将连接的服务器设置的配置(使用 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()
首先,创建一个简单的 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 */);