非常奇怪的问题,只要说出出错的可能原因,高分相送 把你的GetDoc()贴出来看看啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 GetDoc()很长,牵涉到业务关系,只是生成个xmldocument而已,应该不是问题所在 可能原因:doc1.Save("a.txt")后,没有清除doc1对象,造成a.txt在使用中,故用另一个doc打开时出错。 试了下面的代码不会出错。 XmlDocument doc1=new XmlDocument(); doc1.Load(@"E:\123.xml"); doc1.Save(@"E:\1234.xml"); XmlDocument doc2=new XmlDocument(); doc2.Load(@"E:\1234.xml"); Console.WriteLine(doc1.DocumentElement.Name); Console.WriteLine(doc2.DocumentElement.Name);--------------------请问楼主是报的什么错啊!!! 我可能没有说清楚,上面那段程序执行完之后,doc1和doc2分别作为参数赋给同一个方法处理,执行的结果却不同,因为那个方法是用了一个dll组件,所以看不到代码,我只是想知道,经过save和load之后,两个doc难道会有所不同? new一下doc2,就不会报错,我觉得应该是,doc1里面没有清空!把doc1也new一下,看看还会不会出错! To BearRui(我有点笨,但我很特别,所以我特别笨!) 实际上并没有出错,只不过把doc1作为参数赋给组件方法后返回一个不正确的变量;而把doc2作为参数后返回的的变量却是正确的,难道doc1.Save()时会有信息丢失?还是doc2.load()时丢失了什么? XmlDocument doc1=myObject.GetDoc();//GetDoc()是我自己写的一个返回XmlDocument的方法 doc1.Save("a.txt");doc1.dispose();System.GC.Collect();XmlDocument doc2=new XmlDocument();doc2.Load("a.txt");试试,可能是没有释放资源 To robin0001(抓住一切机会) doc1指向的是方法返回的XmlDocument对象,应该没new的必要吧 难道doc1.Save()时会有信息丢失?还是doc2.load()时丢失了什么?这个应该不会吧。要不试一下这样,先实列doc1.Xmldocument doc1=new Xmldocument();doc1=myObject.GetDoc();//然后再试试行不行 To 回复人: ilqtj(飞天) 我并不想处置那个doc1啊,我就是奇怪为什么doc2可以用而doc1不可以用,我理想的是直接使用doc1,可是现在不行,必须先保存到文件,再读取(实际上此时用原来的doc1读取也是可以的),才能用 To BearRui(我有点笨,但我很特别,所以我特别笨!) 试过了,不行 有可能是权限的问题,你看看文件的读写权限,试着把everyone 加入,赋予写的权限,看看是不是还有问题? new一下doc2,就不会报错,我觉得应该是,doc1里面没有清空!把doc1也new一下,看看还会不会出错!(robin0001) 我是楼主,我把代码分开两次写,可能看得清楚点第一次:XmlDocument doc1=myObject.GetDoc();//GetDoc()是我写的一个返回XmlDocument的方法 然后组件调用doc1,返回不正确;第二次:XmlDocument doc1=myObject.GetDoc();//GetDoc()是我写的一个返回XmlDocument的方法 doc1.Save("a.txt");XmlDocument doc2=new XmlDocument();doc2.Load("a.txt");//这里实际不需要doc2,用doc1.load()也可以,所以不存在new的问题组件调用doc2,返回正确 应该是你myObject.GetDoc()的问题,myObject.GetDoc()是不是返回XmlDocument?XmlDocument 对象初始化对否? XmlDocument doc1=new XmlDocument()doc1=myObject.GetDoc();看看这样会不会出问题,如果这样还有问题,那么你的GetDoc没有返回一个有效的XmlDocument实例! XmlDocument doc1=new XmlDocument()doc1=myObject.GetDoc();看看这样会不会出问题,如果这样还有问题,那么你的GetDoc没有返回一个有效的XmlDocument实例!--------------------------------------------------------------------TO zhpsam109(孤寂无边):试过了,照上面的写法没有用,你说GetDoc没有返回一个有效的XmlDocument,那是不是说经过Save和Load之后无效变有效了,,,, 测试:XmlDocument doc1=myObject.GetDoc();//GetDoc()是我自己写的一个返回XmlDocument的方法 doc1.Save("a.txt");doc2.Load("a.txt");XmlDocument doc2=new XmlDocument();doc2.Load("a.txt"); DataGrideView中数据绑定的问题 带有“WCF”的站点应该怎么部署? 望高手指点 十块砖的问题 C# 如何在不同窗体传递数据 DataSet 数据库Access 求WpfPerf.exe 电脑上装了.net3.0SDK的朋友帮下忙 在线求助-设置关键字 SQL查询问题! c#中进程挂起是不是依然能够收到异常 580M的CODE文件,怎么才能打开呢? 在DataGrid里加ComboBox,出现错误。请高手指点。急用,在线等。(我是初学) 如何取得当前时间的时间戳(在.net下)
doc1.Save("a.txt")后,
没有清除doc1对象,造成a.txt在使用中,故用另一个doc打开时出错。
XmlDocument doc1=new XmlDocument();
doc1.Load(@"E:\123.xml");
doc1.Save(@"E:\1234.xml");
XmlDocument doc2=new XmlDocument();
doc2.Load(@"E:\1234.xml"); Console.WriteLine(doc1.DocumentElement.Name);
Console.WriteLine(doc2.DocumentElement.Name);
--------------------
请问楼主是报的什么错啊!!!
把doc1也new一下,看看还会不会出错!
实际上并没有出错,只不过把doc1作为参数赋给组件方法后返回一个不正确的变量;而把doc2作为参数后返回的的变量却是正确的,
难道doc1.Save()时会有信息丢失?还是doc2.load()时丢失了什么?
doc1.Save("a.txt");
doc1.dispose();
System.GC.Collect();
XmlDocument doc2=new XmlDocument();
doc2.Load("a.txt");试试,可能是没有释放资源
doc1指向的是方法返回的XmlDocument对象,应该没new的必要吧
doc1=myObject.GetDoc();//然后再试试行不行
我并不想处置那个doc1啊,我就是奇怪为什么doc2可以用而doc1不可以用,我理想的是直接使用doc1,可是现在不行,必须先保存到文件,再读取(实际上此时用原来的doc1读取也是可以的),才能用
试过了,不行
把doc1也new一下,看看还会不会出错!(robin0001)
第一次:
XmlDocument doc1=myObject.GetDoc();//GetDoc()是我写的一个返回XmlDocument的方法
然后组件调用doc1,返回不正确;
第二次:
XmlDocument doc1=myObject.GetDoc();//GetDoc()是我写的一个返回XmlDocument的方法
doc1.Save("a.txt");
XmlDocument doc2=new XmlDocument();
doc2.Load("a.txt");//这里实际不需要doc2,用doc1.load()也可以,所以不存在new的问题
组件调用doc2,返回正确
myObject.GetDoc()是不是返回XmlDocument?
XmlDocument 对象初始化对否?
doc1=myObject.GetDoc();看看这样会不会出问题,如果这样还有问题,那么你的GetDoc没有返回一个有效的XmlDocument实例!
doc1=myObject.GetDoc();看看这样会不会出问题,如果这样还有问题,那么你的GetDoc没有返回一个有效的XmlDocument实例!
--------------------------------------------------------------------
TO zhpsam109(孤寂无边):
试过了,照上面的写法没有用,你说GetDoc没有返回一个有效的XmlDocument,那是不是说经过Save和Load之后无效变有效了,,,,
XmlDocument doc1=myObject.GetDoc();//GetDoc()是我自己写的一个返回XmlDocument的方法
doc1.Save("a.txt");
doc2.Load("a.txt");XmlDocument doc2=new XmlDocument();
doc2.Load("a.txt");