/// <summary> /// 反序列化xml字符串为指定对象 /// </summary> /// <param name="xml"></param> /// <param name="info"></param> private bool DeSerializeLogInfo(string xml, ControlOperateType ctrlType, out IMonitorCtrlRes info) { try { Type type; if (ctrlType == ControlOperateType.DecreaseBright) { type = typeof(CtrlDecreaseBrightRes); } else if (ctrlType == ControlOperateType.RestoreBright) { type = typeof(CtrlRestoreBrightRes); } else if (ctrlType == ControlOperateType.PowerOff) { type = typeof(CtrlPowerOffRes); } else if (ctrlType == ControlOperateType.PowerOn) { type = typeof(CtrlPowerOnRes); } else { info = null; return(false); } XmlSerializer serializer = new XmlSerializer(type); TextReader reader = new StringReader(xml); if (ctrlType == ControlOperateType.DecreaseBright) { info = (CtrlDecreaseBrightRes)serializer.Deserialize(reader); } else if (ctrlType == ControlOperateType.RestoreBright) { info = (CtrlRestoreBrightRes)serializer.Deserialize(reader); } else if (ctrlType == ControlOperateType.PowerOff) { info = (CtrlPowerOffRes)serializer.Deserialize(reader); } else { info = (CtrlPowerOnRes)serializer.Deserialize(reader); } reader.Close(); return(true); } catch { info = null; return(false); } }
/// <summary> /// 反序列化xml字符串为指定对象 /// </summary> /// <param name="xml"></param> /// <param name="info"></param> private bool DeSerializeLogInfo(string xml, ControlOperateType ctrlType, out IMonitorCtrlRes info) { try { Type type; if (ctrlType == ControlOperateType.DecreaseBright) { type = typeof(CtrlDecreaseBrightRes); } else if (ctrlType == ControlOperateType.RestoreBright) { type = typeof(CtrlRestoreBrightRes); } else if (ctrlType == ControlOperateType.PowerOff) { type = typeof(CtrlPowerOffRes); } else if (ctrlType == ControlOperateType.PowerOn) { type = typeof(CtrlPowerOnRes); } else { info = null; return false; } XmlSerializer serializer = new XmlSerializer(type); TextReader reader = new StringReader(xml); if (ctrlType == ControlOperateType.DecreaseBright) { info = (CtrlDecreaseBrightRes)serializer.Deserialize(reader); } else if (ctrlType == ControlOperateType.RestoreBright) { info = (CtrlRestoreBrightRes)serializer.Deserialize(reader); } else if (ctrlType == ControlOperateType.PowerOff) { info = (CtrlPowerOffRes)serializer.Deserialize(reader); } else { info = (CtrlPowerOnRes)serializer.Deserialize(reader); } reader.Close(); return true; } catch { info = null; return false; } }