反序列化Serializationinfo存储中的枚举?
问题描述:
我有一个叫UnitsManager
的课。在这个类是一个枚举:反序列化Serializationinfo存储中的枚举?
public enum TimeUnit
{
Seconds,
Milliseconds,
Minutes,
Hours,
Days,
Months,
Years
}
这个枚举名为Process
另一个类使用。它有一个属性:
private TimeUnit cycleTimeUnit = TimeUnit.Seconds;
[XmlAttribute("CycleTimeUnit")]
public TimeUnit CycleTimeUnit
{
get { return this.cycleTimeUnit; }
set { this.cycleTimeUnit = value; }
}
我试图序列化和反序列化Process
类。我实现了ISerializable的Process
类
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{
base.GetObjectData(info, context);
info.AddValue("CycleTime", CycleTime);
info.AddValue("CycleTimeUnit", CycleTimeUnit);
}
我的问题出现在反序列化
private Process(SerializationInfo info, StreamingContext context)
{
CycleTime = info.GetDouble("CycleTime");
CycleTimeUnit = info.????("CycleTimeUnit"); // <--- ???
}
如何施放此作为一种CycleTimeUnit
?
答
试试这个:
private Process(SerializationInfo info, StreamingContext context)
{
CycleTime = info.GetDouble("CycleTime");
CycleTimeUnit = (TimeUnit) info.GetValue("CycleTimeUnit", typeof(TimeUnit));
}
差不多! 'CycleTimeUnit =(TimeUnit)info.GetValue(“CycleTimeUnit”,typeof(TimeUnit));'做了诡计!谢谢你的帮助。 – cce1911
不客气,我编辑了未来的正确答案。 – Nikolaus