我正在构建我的第一个WP8应用程序,我遇到了一个疑问。
我必须在IsolatedStorage中保存通过序列化三个不同对象获得的一些数据。
我加载这些数据的代码如下:
public static Statistics GetData()
{
Statistics data = new Statistics();
try
{
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream stream = myIsolatedStorage.OpenFile("stats.xml", FileMode.OpenOrCreate))
{
XmlSerializer serializer = new XmlSerializer(typeof(Statistics));
data = (Statistics)serializer.Deserialize(stream);
}
}
}
catch (Exception e)
{
MessageBox.Show(e.Message + "\n" + e.InnerException);
}
return data;
}为了保存数据,当然是
public static void SaveStats(Statistics stats)
{
XmlWriterSettings xmlWriterSettings = new XmlWriterSettings();
xmlWriterSettings.Indent = true;
try
{
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream stream = myIsolatedStorage.OpenFile("stats.xml", FileMode.Create))
{
XmlSerializer serializer = new XmlSerializer(typeof(Statistics));
using (XmlWriter xmlWriter = XmlWriter.Create(stream, xmlWriterSettings))
{
serializer.Serialize(xmlWriter, stats);
}
}
}
}
catch
{
MessageBox.Show("Salvataggio non riuscito");
}
}这很好,现在的问题是我也要对另外两个类做同样的事情。
是否必须再次编写相同的精确代码,只需与其他类一起更改统计数据?
还是有更聪明的方法去做?
发布于 2014-02-11 13:17:54
看看仿制药。序列化方法如下所示:
public static void SaveStats<T>(T obj) where T : class, new()
{
...
XmlSerializer serializer = new XmlSerializer(typeof(T));
...
}方法调用:
SaveStats<Statistics>(new Statistics());
SaveStats<OtherObject>(new OtherObject());https://stackoverflow.com/questions/21702764
复制相似问题