private string GetRequestUrl(string ServerTag) { DataTable dt = new DataTable(); string url = string.Empty; //XmlDocument doc = new XmlDocument(); if (!Directory.Exists(filePath)) Directory.CreateDirectory(filePath); if (!File.Exists(fullPath)) File.Create(fullPath); if (!string.IsNullOrEmpty(ServerTag)) { if (dt.Rows.Count <= 0) { XmlOp op = new XmlOp(fullPath);//装载xml文件(第二次读取报错) dt = op.GetDs("Root").Tables[0]; } DataRow[] dataRow = dt.Select(string.Format("Name='{0}'", ServerTag)); if (dataRow != null && dataRow.Count() > 0) { return dataRow[0][1].ToString();//筛选表中请求的地址 } else return "https://www.baidu.com/"; } return ""; }
报错得地方:
/// <summary> /// 构造函数,导入Xml文件 /// </summary> /// <param name="xmlFile">文件虚拟路径</param> public XmlOp(string xmlFile) { try { XmlDoc.Load(xmlFile); //第二次载入Xml文档的时候报错(错误提示:未将对象引用实例) } catch (System.Exception ex) { throw ex; } }
你第二次运行,设个断点在
XmlDoc.Load这行上面, 不要运行,先看看XmlDoc 是否为null。
好
XmlDoc确实是NULL
第一次读取的时候XmlDoc=document
第二次读取的时候XmlDoc=NULL
那这要怎么处理?
已解决:上面声明的 XmlDocument static,去除static就可以了