-3

我的开发存在以下问题:

我想在我的 iPhone 上序列化并保存一个字符串列表(System.List)。该列表包含正在运行的应用程序发生的错误消息。然后我想加载它并反序列化它以将列表保存在我的应用程序中。以下代码会发生这种情况(代码缩短,不必要的部分被切断):

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"]

有什么问题?

4

1 回答 1

-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"));
于 2019-11-14T14:28:34.260 回答