我有一个程序,创建一个配置文件和帖子到社会媒体,因此我有一个API密钥和访问令牌的集合为每个配置文件。我已经保存了一些到默认的properties.settings,但是在运行之前有一个未知数量的配置文件,每个配置文件都需要自己的设置文件。我已经保存了一些XML文件,但在更新过程中被覆盖。如何保存数据,使其不会在更新过程中被覆盖?
yi0zb3m41#
1.使用数据库是一个很好的做法。1.如果更改了要启动的文件的位置,则将不会使用旧的配置文件,这意味着在将应用程序返回到初始保存位置之前,所有设置都将不可用。1.如果不使用数据库保存令牌对您来说是基本的,那么您可以使用INI文件(下面的示例)或使用Newtonsoft.Json以JSON格式保存数据(这比INI更好)。在INI文件的例子中,我使用了Hopes.MultiConfX包,保存,更新和接收令牌工作(包中也有删除)。可视化在截图下面的代码。
using System; using System.IO; using System.Windows.Forms; using Hopex.MultiConfX.Ini; namespace WindowsFormsApp1 { public partial class Form1 : Form { readonly Ini iniHandler = new Ini("tokens"); public Form1() { InitializeComponent(); iniHandler.Load(); cb_users.Items.AddRange(items: iniHandler.Data.GetSections().ToArray()); } private void btn_add_Click(object sender, EventArgs e) { if ( !string.IsNullOrWhiteSpace(value: tb_new_user.Text) && !string.IsNullOrWhiteSpace(value: tb_new_social_network.Text) && !string.IsNullOrWhiteSpace(value: tb_new_token.Text) ) { iniHandler.Data.AddItem( section: tb_new_user.Text, key: tb_new_social_network.Text, value: tb_new_token.Text ); if (iniHandler.Save()) { cb_users.Items.Clear(); cb_social_networks.Items.Clear(); tb_token.Text = string.Empty; cb_users.Items.AddRange(items: iniHandler.Data.GetSections().ToArray()); MessageBox.Show(text: "Success"); } else MessageBox.Show(text: "Failure"); } } private void cb_users_SelectedIndexChanged(object sender, EventArgs e) { cb_social_networks.Items.Clear(); cb_social_networks.Items.AddRange( items: iniHandler.Data.GetKeys( section: ((ComboBox)sender).SelectedItem.ToString() ).ToArray() ); } private void cb_social_networks_SelectedIndexChanged(object sender, EventArgs e) { tb_token.Text = iniHandler.Data.GetValue( section: cb_users.SelectedItem.ToString(), key: ((ComboBox)sender).SelectedItem.ToString() ); } } }
1条答案
按热度按时间yi0zb3m41#
1.使用数据库是一个很好的做法。
1.如果更改了要启动的文件的位置,则将不会使用旧的配置文件,这意味着在将应用程序返回到初始保存位置之前,所有设置都将不可用。
1.如果不使用数据库保存令牌对您来说是基本的,那么您可以使用INI文件(下面的示例)或使用Newtonsoft.Json以JSON格式保存数据(这比INI更好)。
在INI文件的例子中,我使用了Hopes.MultiConfX包,保存,更新和接收令牌工作(包中也有删除)。可视化在截图下面的代码。