我有一个名为UnitsManager
的类。在这个类中有一个枚举:
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
类进行序列化和反序列化。我在Process
类上实现了ISerializable接口。
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
?
CycleTimeUnit = (TimeUnit)info.GetValue("CycleTimeUnit", typeof(TimeUnit));
解决了问题!谢谢你的帮助。 - cce1911