我的开发遇到以下问题:
我想序列化并将字符串列表(System.List)保存在我的iPhone上。该列表包含正在运行的应用程序发生的错误消息。 然后,我想将其加载回并反序列化以将列表保存在我的应用程序中。以下代码会发生这种情况(代码缩短,多余部分被截断):
List<string> MyList = {"Message One", "Message two"};
//Serialize
string Temp = Newtonsoft.Json.Jsonconvert.SerializeObject(MyList);
//Save Data
using (Streamwriter sw = File.AppendText(Path))
{
sw.WriteLine(Temp);
}
//Load Data
MyList = Newtonsoft.Json.Jsonconvert.Deserialize<List<string>>(File.ReadAllText(Path));
然后我得到了例外
"Error converting value "one" to type 'System.Collections.Generic.List`1[System.String]'."
iOS系统上的输出在.txt文件中:
["One","Two"]
出什么问题了?
答案 0 :(得分:-1)
问题已解决:File.AppendText(“ C:\ temp \ t.txt”)
它将在每次运行时添加新行。 1次运行后。您无法转换所有文件内容。
List<string> MyList = new List<string>{ "One", "two" };
//Serialize
string Temp = JsonConvert.SerializeObject(MyList);
//Do this.
File.WriteAllText("C:\\temp\\t.txt",Temp);
//Comment this.
//using (StreamWriter sw = File.AppendText("C:\\temp\\t.txt"))
//{
// sw.WriteLine(Temp);
//}
//Load Data
MyList = JsonConvert.DeserializeObject<List<string>>(File.ReadAllText("C:\\temp\\t.txt"));