我有一个对象列表,我将其保存为json文件,如下所示:
List<Sede> listSede;
string json = JsonConvert.SerializeObject(listSede);
System.IO.File.WriteAllText(pathToJson+"\filiali.json",json);
然后我用它读了它们:
StreamReader r = new StreamReader (pathToJson + fileName);
string jsonread = r.ReadToEnd();
List<Sede> items = new List<Sede> ();
items = JsonConvert.DeserializeObject<List<Sede>>(jsonread);
类Sede
继承自MKAnnotation
,在我获取每个项目中的对象列表之后,我尝试将注释添加到地图中,如下所示:
foreach (Sede c in items)
map.AddAnnotation (c);
但它没有添加任何注释,如果我尝试检查元素c
我看到有一些字段未初始化并且有一个objectDisposedException,这里是图像:
答案 0 :(得分:1)
MKAnnotation不是可序列化的,因此当您对其进行反序列化时,继承自它的类不会被完全膨胀。
您可以尝试编写自己的JsonConverter来正确处理Sede,或者您可以这样做:
foreach (Sede c in items) {
// add a constructor to Sede that properly creates a new object based on a partially inflated one
Sede cc = new Sede(c);
map.AddAnnotation (cc);
}