using System;
using System.IO;
using System.Xml.Serialization;
using System.Collections.Generic;
using LogLib; // 如果没有加载该库,请删除所有logger
// add your data to here
public class ClientUserDefaultData
{
public LoginDefaultData loginData = new LoginDefaultData();
}
public class XMLUserDataDefaultMgr
{
private static bool canTryAgain = true;
private static string mFileName = null;
private static ClientUserDefaultData mUserDefaultData = new ClientUserDefaultData();
public static ClientUserDefaultData UserDefaultData
{
get { return mUserDefaultData; }
}
public static void InitWithFileName(string fileName)
{
if(fileName == null) return;
mFileName = fileName; // @"d:\SerializationOverview.xml"
Logger.Info("XMLUserDataDefaultMgr.....mFileName={0}", mFileName);
}
/* you must execute this function earier than ReadFromXML,
* executing first time after create role success,
* then you can execute each one making yourself */
public static void WriteToXML()
{
if(mFileName == null) return;
StreamWriter file = null;
try
{
file = new StreamWriter(mFileName);
Logger.Info("WriteToXML.....file open normal");
if(file == null) return;
XmlSerializer writer = new XmlSerializer(typeof(ClientUserDefaultData));
if(writer == null)
{
file.Close();
return;
}
writer.Serialize(file, mUserDefaultData);
Logger.Info("WriteToXML.....Serialize ok");
}
catch(IOException)
{
Logger.Info("WriteToXML.....cann't open needed file");
}
finally
{
if(file != null) file.Close();
Logger.Info("WriteToXML.....in finally");
}
file.Close();
}
public static void ReadFromXML()
{
if(mFileName == null) return;
StreamReader file = null;
XmlSerializer reader = null;
retry:
try
{
canTryAgain = false;
// open file
file = new StreamReader(mFileName);
Logger.Info("ReadFromXML.....file open normal");
// get de-serialize data format
if(file == null) return;
reader = new XmlSerializer(typeof(ClientUserDefaultData));
// do de-serialize
if(reader == null)
{
file.Close();
return;
}
mUserDefaultData = (ClientUserDefaultData)reader.Deserialize(file);
Logger.Info("ReadFromXML.....de-serialize ok");
}
catch (FileNotFoundException)
{
Logger.Info("ReadFromXML.....file not found");
WriteToXML();
if(canTryAgain)
goto retry;
}
catch(IOException)
{
Logger.Info("ReadFromXML.....cann't open needed file");
}
catch (InvalidOperationException)
{
Logger.Info("ReadFromXML.....deserialize error, may be is file not match");
}
finally
{
if(file != null) file.Close();
Logger.Info("ReadFromXML.....in finally");
}
file.Close();
}
}
// for save login information of user
public class LoginDefaultData
{
public bool bCheckBoxState = false; // default is false
public string strUserName = null; // default no
}
using System.IO;
using System.Xml.Serialization;
using System.Collections.Generic;
using LogLib; // 如果没有加载该库,请删除所有logger
// add your data to here
public class ClientUserDefaultData
{
public LoginDefaultData loginData = new LoginDefaultData();
}
public class XMLUserDataDefaultMgr
{
private static bool canTryAgain = true;
private static string mFileName = null;
private static ClientUserDefaultData mUserDefaultData = new ClientUserDefaultData();
public static ClientUserDefaultData UserDefaultData
{
get { return mUserDefaultData; }
}
public static void InitWithFileName(string fileName)
{
if(fileName == null) return;
mFileName = fileName; // @"d:\SerializationOverview.xml"
Logger.Info("XMLUserDataDefaultMgr.....mFileName={0}", mFileName);
}
/* you must execute this function earier than ReadFromXML,
* executing first time after create role success,
* then you can execute each one making yourself */
public static void WriteToXML()
{
if(mFileName == null) return;
StreamWriter file = null;
try
{
file = new StreamWriter(mFileName);
Logger.Info("WriteToXML.....file open normal");
if(file == null) return;
XmlSerializer writer = new XmlSerializer(typeof(ClientUserDefaultData));
if(writer == null)
{
file.Close();
return;
}
writer.Serialize(file, mUserDefaultData);
Logger.Info("WriteToXML.....Serialize ok");
}
catch(IOException)
{
Logger.Info("WriteToXML.....cann't open needed file");
}
finally
{
if(file != null) file.Close();
Logger.Info("WriteToXML.....in finally");
}
file.Close();
}
public static void ReadFromXML()
{
if(mFileName == null) return;
StreamReader file = null;
XmlSerializer reader = null;
retry:
try
{
canTryAgain = false;
// open file
file = new StreamReader(mFileName);
Logger.Info("ReadFromXML.....file open normal");
// get de-serialize data format
if(file == null) return;
reader = new XmlSerializer(typeof(ClientUserDefaultData));
// do de-serialize
if(reader == null)
{
file.Close();
return;
}
mUserDefaultData = (ClientUserDefaultData)reader.Deserialize(file);
Logger.Info("ReadFromXML.....de-serialize ok");
}
catch (FileNotFoundException)
{
Logger.Info("ReadFromXML.....file not found");
WriteToXML();
if(canTryAgain)
goto retry;
}
catch(IOException)
{
Logger.Info("ReadFromXML.....cann't open needed file");
}
catch (InvalidOperationException)
{
Logger.Info("ReadFromXML.....deserialize error, may be is file not match");
}
finally
{
if(file != null) file.Close();
Logger.Info("ReadFromXML.....in finally");
}
file.Close();
}
}
// for save login information of user
public class LoginDefaultData
{
public bool bCheckBoxState = false; // default is false
public string strUserName = null; // default no
}