【发布时间】:2011-12-06 08:11:23
【问题描述】:
我正在使用 MonoTouch 处理一个 iPhone 项目,我需要序列化并保存一个属于具有 CLLocation 类型作为数据成员的 c# 类的简单对象:
[Serializable]
public class MyClass
{
public MyClass (CLLocation gps_location, string location_name)
{
this.gps_location = gps_location;
this.location_name = location_name;
}
public string location_name;
public CLLocation gps_location;
}
这是我的二进制序列化方法:
static void SaveAsBinaryFormat (object objGraph, string fileName)
{
BinaryFormatter binFormat = new BinaryFormatter ();
using (Stream fStream = new FileStream (fileName, FileMode.Create, FileAccess.Write, FileShare.None)) {
binFormat.Serialize (fStream, objGraph);
fStream.Close ();
}
}
但是当我执行这段代码时(myObject 是上述类的一个实例):
try {
SaveAsBinaryFormat (myObject, filePath);
Console.WriteLine ("object Saved");
} catch (Exception ex) {
Console.WriteLine ("ERROR: " + ex.Message);
}
我得到了这个例外:
错误:类型 MonoTouch.CoreLocation.CLLocation 未标记为可序列化。
有没有办法用 CLLocation 序列化一个类?
【问题讨论】:
标签: ios serialization xamarin.ios serializable cllocation