Я работаю над проектом iPhone с использованием MonoTouch, и мне нужно сериализовать и сохранить простой объект, принадлежащий классу ac #, с типом CLLocation в качестве члена данных:
[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?