Ken*_*ama 2 c# wpf settings dictionary converter
Dictionary<string, double>当我重新启动应用程序时,我已经保存并恢复它.据我所知,你不能在c#中存储字典,所以试图解决方法.
目前我已经在设置中调用了字符串变量DB,并试图使用这样的东西:
var settings = dict.ToArray();
var prop = Properties.Settings.Default.DB;
Run Code Online (Sandbox Code Playgroud)
做一些像 prop = settings;
到目前为止,我已经做到了这一点,虽然它现在正在工作..
private void SaveSettings()
{
var settings = spamPercentage.ToArray();
var prop = Properties.Settings.Default.DB;
string res = String.Join(",", settings);
prop = res;
}
private void LoadSettings()
{
var prop = Properties.Settings.Default.DB;
var dictionary = prop.ToDictionary(item => item.Key,
item => item.Value);
}
Run Code Online (Sandbox Code Playgroud)
编辑字典中的值如下所示:
{[john, 0,53]}
{[ivone, 0,44]}
etc.
Run Code Online (Sandbox Code Playgroud)
@edit使用Julien JSON的想法,我做了:
string prop = Properties.Settings.Default.DB;
private void SaveSettings()
{
prop = JsonConvert.SerializeObject(dict);
Properties.Settings.Default.Save();
}
private void LoadSettings()
{
dict= JsonConvert.DeserializeObject<Dictionary<string, double>>(prop);
}
Run Code Online (Sandbox Code Playgroud)
当我点击程序并使用我的SaveSettings方法时,我可以看到它有值.然后我重新启动程序,并尝试loadsettings,他们是null.
我刚才有类似的问题.我最终使用JSON序列化将字典序列化为字符串,将其存储在应用程序设置中,并在需要时将其反序列化为字典.
string strDictionaryAsString = JsonConvert.SerializeObject(dtnDictionary);
var dtnDictionary = JsonConvert.DeserializeObject<Dictionary<string, double>>(strDictionaryAsString );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4427 次 |
| 最近记录: |