C# 为什么更改内容后我的xml是相同的?

C# 为什么更改内容后我的xml是相同的?,c#,.net,xml,C#,.net,Xml,我将对象存储在xml文件中。编辑对象并序列化后,xml文件中的内容与以前保持一致。但是,当我再次在VS(StreamReader)中读取文件时,我会得到编辑过的文件数据 怎么了?如何同时保存和不保存数据?在编辑之后,我可以做些什么来获得一个刷新的xml文件 这是我的简历: List data=GetFileData(); 用户testUser=data.Single(x=>x.Id==this.Id); testUser.Name=“Alex”; var serializer=newxmlser

我将对象存储在xml文件中。编辑对象并序列化后,xml文件中的内容与以前保持一致。但是,当我再次在VS(StreamReader)中读取文件时,我会得到编辑过的文件数据

怎么了?如何同时保存和不保存数据?在编辑之后,我可以做些什么来获得一个刷新的xml文件

这是我的简历:

List data=GetFileData();
用户testUser=data.Single(x=>x.Id==this.Id);
testUser.Name=“Alex”;
var serializer=newxmlserializer(typeof(List));
使用(var writer=newstreamwriter(@“res\users.xml”))
{
序列化程序。序列化(写入程序、数据);
}
处理前后的Xml:

<?xml version="1.0" encoding="utf-8" ?>
<ArrayOfUser>
  <User>
    <Name>Carl</Name>
    <Age>54</Age>
    <Id>3549</Id>
    ...
  </User>
  ...
</ArrayOfUser>

卡尔
54
3549
...
...

如果非要我猜的话,我会说你可能看错了文件的副本。不要忘记在VS中运行代码时,它会为构建的代码创建一个单独的文件夹,与源代码所在的位置不同。因为您正在为XML文件指定相对路径,所以要修改的副本应该是相对于该可执行文件夹的,而不是相对于源文件夹的。您是对的。它使用完整路径工作。相对路径指向\bin\Debug\…\res\users.xml。使用完整路径时,可以立即看到更改的数据。但是使用相对路径文件没有任何更改。怎么样?它应该在下一个调试过程(当它被源文件刷新时)之前保存更改的数据,对吗?
<?xml version="1.0" encoding="utf-8" ?>
<ArrayOfUser>
  <User>
    <Name>Carl</Name>
    <Age>54</Age>
    <Id>3549</Id>
    ...
  </User>
  ...
</ArrayOfUser>