在我的程序中,我将一些数据保存在自定义对象中:
[Serializable]
[XmlInclude(typeof(MsgTimerSettings))]
public class MsgTimerSettings
{
public string t_name { get; set; }
public string t_subj { get; set; }
public string t_nmsg { get; set; }
public UUID t_attach { get; set; }
public string t_attachName { get; set; }
public Dictionary<string, UUID> t_ngroups { get; set; }
public Dictionary<string, UUID> t_imgroups { get; set; }
public string t_IMmsg { get; set; }
public string t_SLURL { get; set; }
public int t_Type { get; set; }
public int t_IMsetting { get; set; }
public int t_ImgIndex { get; set; }
public bool t_StartNow { get; set; }
public DateTime t_StartTime { get; set; }
public bool t_EndAt { get; set; }
public DateTime t_EndTime { get; set; }
public int t_Number { get; set; }
public string t_Period { get; set; }
public int t_Interval { get; set; }
public bool t_Active { get; set; }
}
然后将这些对象中的每一个存储在 Dictionary(Dictionary MsgTimers;) 中,字典键是计时器的名称。
现在,我想做的是将这些对象中的每一个保存到一个 XML 文件中,以便下次启动程序时可以读回计时器。
我知道字典不可序列化,我试图找到不同的解决方案来解决这个问题,但无济于事。
我尝试使用在以下位置提供的 SerializableDictionary 解决方法:http ://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx以制作可序列化的字典,但不仅仅是将我的字典制作成 SerializableDictionaries ,我还是没有头绪...
我尝试序列化的代码如下:
static public void SerializeToXML(SerializableDictionary<string, object> ST)
{
XmlSerializer serializer = new XmlSerializer(typeof(SerializableDictionary<string,object>));
TextWriter textWriter = new StreamWriter(@"C:\ST.xml");
serializer.Serialize(textWriter, ST);
textWriter.Close();
}
希望任何人都可以帮助我。