/// <summary> /// 命令字符串转换实体类 /// </summary> /// <param name="index"></param> /// <param name="command"></param> /// <param name="responseResultName"></param> public override void CommandStringToClass(int index, string command, string responseResultName) { if (command.Length <= index) { return; } string xmlContent = command.Substring(index); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(xmlContent); XmlNodeList lstNodes = xmlDocument.SelectNodes("ResponseEntity"); XmlNode xmlNode = null; // 获取返回的头部信息 Type type = this.GetType(); PropertyInfo[] proInfos = type.GetProperties(); foreach (XmlNode node in lstNodes) { foreach (PropertyInfo info in proInfos) { if (info.Name.Equals("Results")) { continue; } xmlNode = node.SelectSingleNode(info.Name); if (xmlNode != null) { info.SetValue(this, string.IsNullOrEmpty(xmlNode.InnerText) ? null : Convert.ChangeType(xmlNode.InnerText, info.PropertyType), null); } } } if (!string.IsNullOrEmpty(responseResultName)) { Assembly assm = Assembly.Load("Cn.Vcredit.AMS.BaseService"); Results = assm.CreateInstance(responseResultName) as ResponseResult; if (Results != null) { Results.CommandStringToClass(xmlContent); } } }