到目前为止,我的项目是一个非常有趣的旅程,但我希望保存它将连接的服务器设置的配置(使用MySQL Net / Connector)。
当应用程序加载时,默认情况下它连接到名为“sqlserver05”的服务器,但我希望用户/ admin能够在menustrip中配置服务器设置。所以我导航到menustrip,您可以点击“配置”,弹出另一个表格,询问服务器详细信息。
我只能通过全局字符串执行此操作,但每次应用程序运行时都必须更改设置。我是否可以不创建XML文件来读取我刚刚更改的配置设置?
很抱歉,如果我不清楚的话。非常感谢,
布兰登
答案 0 :(得分:0)
是的,你可以。一种简单的方法是使用应用程序设置。这是一个开箱即用的(用户和程序)设置实现,它被序列化为XML。
请看一下古老但仍然适用的Using Settings in C#。
有效地你需要做的事情:
PropertyName
)在代码中获取并设置该设置。
string value = Properties.Settings.PropertyName; // get
Properties.Settings.Default.PropertyName = value; // set
更改任何内容后保存设置:
Properties.Settings.Default.Save()
答案 1 :(得分:0)
答案 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 */);