cce*_*911 6 c# enums serialization
我有一堂课叫UnitsManager. 这个类中有一个枚举:
public enum TimeUnit
{
Seconds,
Milliseconds,
Minutes,
Hours,
Days,
Months,
Years
}
Run Code Online (Sandbox Code Playgroud)
该枚举在另一个名为 的类中使用Process。它有一个属性:
private TimeUnit cycleTimeUnit = TimeUnit.Seconds;
[XmlAttribute("CycleTimeUnit")]
public TimeUnit CycleTimeUnit
{
get { return this.cycleTimeUnit; }
set { this.cycleTimeUnit = value; }
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试序列化和反序列化该类Process。我已经在Process类上实现了 ISerialized
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{
base.GetObjectData(info, context);
info.AddValue("CycleTime", CycleTime);
info.AddValue("CycleTimeUnit", CycleTimeUnit);
}
Run Code Online (Sandbox Code Playgroud)
我的问题出在反序列化上
private Process(SerializationInfo info, StreamingContext context)
{
CycleTime = info.GetDouble("CycleTime");
CycleTimeUnit = info.????("CycleTimeUnit"); // <--- ???
}
Run Code Online (Sandbox Code Playgroud)
我如何将其转换为类型CycleTimeUnit?
尝试这个:
private Process(SerializationInfo info, StreamingContext context)
{
CycleTime = info.GetDouble("CycleTime");
CycleTimeUnit = (TimeUnit) info.GetValue("CycleTimeUnit", typeof(TimeUnit));
}
Run Code Online (Sandbox Code Playgroud)