把你的GetDoc()贴出来看看啊!

解决方案 »

  1.   

    GetDoc()很长,牵涉到业务关系,只是生成个xmldocument而已,应该不是问题所在
      

  2.   

    可能原因:
    doc1.Save("a.txt")后,
    没有清除doc1对象,造成a.txt在使用中,故用另一个doc打开时出错。
      

  3.   

    试了下面的代码不会出错。
    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);
    --------------------
    请问楼主是报的什么错啊!!!
      

  4.   

    我可能没有说清楚,上面那段程序执行完之后,doc1和doc2分别作为参数赋给同一个方法处理,执行的结果却不同,因为那个方法是用了一个dll组件,所以看不到代码,我只是想知道,经过save和load之后,两个doc难道会有所不同?
      

  5.   

    new一下doc2,就不会报错,我觉得应该是,doc1里面没有清空!
    把doc1也new一下,看看还会不会出错!
      

  6.   

    To  BearRui(我有点笨,但我很特别,所以我特别笨!) 
    实际上并没有出错,只不过把doc1作为参数赋给组件方法后返回一个不正确的变量;而把doc2作为参数后返回的的变量却是正确的,
    难道doc1.Save()时会有信息丢失?还是doc2.load()时丢失了什么?
      

  7.   

    XmlDocument doc1=myObject.GetDoc();//GetDoc()是我自己写的一个返回XmlDocument的方法 
    doc1.Save("a.txt");
    doc1.dispose();
    System.GC.Collect();
    XmlDocument doc2=new XmlDocument();
    doc2.Load("a.txt");试试,可能是没有释放资源
      

  8.   

    To  robin0001(抓住一切机会) 
    doc1指向的是方法返回的XmlDocument对象,应该没new的必要吧
      

  9.   

    难道doc1.Save()时会有信息丢失?还是doc2.load()时丢失了什么?这个应该不会吧。要不试一下这样,先实列doc1.Xmldocument doc1=new Xmldocument();
    doc1=myObject.GetDoc();//然后再试试行不行
      

  10.   

    To 回复人: ilqtj(飞天) 
    我并不想处置那个doc1啊,我就是奇怪为什么doc2可以用而doc1不可以用,我理想的是直接使用doc1,可是现在不行,必须先保存到文件,再读取(实际上此时用原来的doc1读取也是可以的),才能用
      

  11.   

    To  BearRui(我有点笨,但我很特别,所以我特别笨!) 
    试过了,不行
      

  12.   

    有可能是权限的问题,你看看文件的读写权限,试着把everyone 加入,赋予写的权限,看看是不是还有问题?
      

  13.   

    new一下doc2,就不会报错,我觉得应该是,doc1里面没有清空!
    把doc1也new一下,看看还会不会出错!(robin0001)
      

  14.   

    我是楼主,我把代码分开两次写,可能看得清楚点
    第一次:
    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,返回正确
      

  15.   

    应该是你myObject.GetDoc()的问题,
    myObject.GetDoc()是不是返回XmlDocument?
    XmlDocument 对象初始化对否?
      

  16.   

    XmlDocument doc1=new XmlDocument()
    doc1=myObject.GetDoc();看看这样会不会出问题,如果这样还有问题,那么你的GetDoc没有返回一个有效的XmlDocument实例!
      

  17.   

    XmlDocument doc1=new XmlDocument()
    doc1=myObject.GetDoc();看看这样会不会出问题,如果这样还有问题,那么你的GetDoc没有返回一个有效的XmlDocument实例!
    --------------------------------------------------------------------
    TO zhpsam109(孤寂无边):
    试过了,照上面的写法没有用,你说GetDoc没有返回一个有效的XmlDocument,那是不是说经过Save和Load之后无效变有效了,,,,
      

  18.   

    测试:
    XmlDocument doc1=myObject.GetDoc();//GetDoc()是我自己写的一个返回XmlDocument的方法 
    doc1.Save("a.txt");
    doc2.Load("a.txt");XmlDocument doc2=new XmlDocument();
    doc2.Load("a.txt");