「Conexion」という名前のクラスがあり、アプリのすべての情報をそこに保持します。ユーザーがWindowsキーを押したときにクラスのオブジェクトをファイルに保存したいのですが、obectと言うためにアプリがクラッシュします「delegado」には、彼のタイプを反映した問題があります。このオブジェクトの型は "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.
ただし、クラスにはパラメーターなしのコンストラクターがあります。
何か案が?