【发布时间】:2016-10-24 20:23:10
【问题描述】:
所以我正在尝试反序列化和序列化一个列表。
问题:list(list1) 没有保存到名为“ListData”的文件中,如果还没有,则应将其创建到 android 内部存储中的文档文件夹中。
我认为文件可能没有正确创建或其他什么,或者文件路径不正确。下面是它应该如何运作,但它不像上面的问题所解释的那样运作。
我想将文件名保存为“ListData”之类的名称。 此外,需要保存到内部存储中的某个位置,例如应用程序的数据文件夹或内部存储中的文档。
以下是我的代码,但我似乎无法在其他地方找到任何帮助来解决我的问题。它不起作用,有什么想法可以解决我想要它做的事情吗?
代码:
public abstract class DataHandler
{
public static void SaveLists()
{
string filePath = Android.OS.Environment.DirectoryDocuments;
string fileName = "ListData";
XmlSerializer serializer = new XmlSerializer(typeof(List<Item>));
Stream writer = new FileStream(filePath, FileMode.Create);
serializer.Serialize(writer, _LISTFROMANOTHERCLASS_);
writer.Close();
}
public static void LoadLists()
{
string filePath = Android.OS.Environment.DirectoryDocuments;
string fileName = "ListData";
XmlSerializer serializer = new XmlSerializer(typeof(List<Item>));
Stream reader = new FileStream(filePath, FileMode.Open);
List<Item> list1 = new List<Item>();
list1 = (List<Item>) serializer.Deserialize(reader);
_LISTFROMANOTHERCLASS_ = list1;
reader.Close();
}
}
【问题讨论】:
-
有什么问题?
-
请定义“不起作用”。它做什么或不做什么?你有异常或错误吗?另外,考虑使用 Newtonsoft.JSON 进行序列化。它与 Xamarin 配合得很好,并且有很好的文档记录。
-
问题:list(list1) 没有保存到名为“ListData”的文件中,如果还没有,则应将其创建到 android 内部存储的文档文件夹中。
-
@Jason 我已经添加了,谢谢
标签: c# android xml serialization xamarin