我有一个名为“Conexion”的类,我保留了我的应用程序的所有信息,我希望它在用户按下Windows键时将类的对象保存到文件,但应用程序崩溃,因为它说“委托”有一个反映他的类型的问题。这个对象的类型是“PhoneApplicationPage”,它似乎无法序列化。该对象跟踪请求的页面。
所以我请求你的帮助,看看是否有一个解决方案,这不会让我重做应用程序,因为我没有时间。
下面是我用来保存和加载数据的方法的代码。
public void save() {
IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream stream = storage.CreateFile(fileName);
DateTime currTime = DateTime.Now;
this.timeOff = currTime.ToString();
XmlSerializer xml = new XmlSerializer(this.GetType());
xml.Serialize(stream, this);
stream.Close();
stream.Dispose();
}
public Conexion load() {
IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication();
Conexion conn;
if (storage.FileExists(fileName))
{
IsolatedStorageFileStream stream = storage.OpenFile(fileName, System.IO.FileMode.Open);
XmlSerializer xml = new XmlSerializer(typeof(Conexion));
conn = xml.Deserialize(stream) as Conexion;
stream.Close();
DateTime currTime = DateTime.Now;
DateTime checkTime = DateTime.Parse(timeOff).AddMinutes(lapso);
if (DateTime.Compare(checkTime, currTime) >= 0)
{
Console.WriteLine("sesion valida");
}
else {
conn.reseteaSingletonConexion();
}
stream.Dispose();
}
else
{
conn= new Conexion();
}
return conn;
}
提前致谢
编辑:
忽略对象“delegado”阻止了应用程序崩溃,但现在,当我加载信息时,对象无法反序列化,似乎它在同一错误中标记了2个细节:
There is an error in XML document (2, 2).
Conexion cannot be serialized because it does not have a parameterless constructor.
但该类确实有一个无参数构造函数。
任何想法?
答案 0 :(得分:0)
您可以对不会序列化的对象使用[XmlIgnore]
属性(您可能不希望序列化整个XAML页面。
将此属性放在Conexion
课程的属性上方。例如,
public class Conexion
{
public string MyPropertyToSerialize { get;set; }
[XmlIgnore]
public string MyPropertyToIgnore { get;set; }
}
希望有所帮助。