如何修改C#中嵌入的XML文件?

时间:2018-10-10 22:08:53

标签: c# xml winforms

我正在用C#开发一个应用程序,该应用程序可以与DLL程序集交互以交换值,因为该应用程序可以在DLL文件中进行读写。

每个DLL文件都是一个类库项目,因为它们是扩展我应用程序功能的插件。但是,我需要每个DLL都可以存储我的应用程序可以自由读取和修改的某些参数,并且在修改后,这些参数将永久保留其值。

每个DLL文件都有一个嵌入的DLL文件来存储这些参数(显然,我无法按其路径加载XML,因为它位于DLL中),但是,我无法更改XML文件中节点的值。

话虽如此,我在DLL程序集中有以下类:

public class AssemblyData
{
   private Assembly assembly;
   private XmlDocument xmldocument;
   private Stream stream;

   public AssemblyData()
   {
      this.assembly = Assembly.GetExecutingAssembly();
      this.xmldocument = new XmlDocument();
      string classNamespace = typeof(AssemblyData).Namespace;
      this.stream = this.assembly.GetManifestResourceStream($"{classNamespace}.Settings.xml");
      this.xmldocument.Load(this.stream);
   }

   public string Test
   {
      get => this.xmldocument.SelectSingleNode("Settings/Test").InnerText;
      set
      {
         this.xmldocument.SelectSingleNode("Settings/Test").InnerText = value;
         this.SaveXml();
      }
   }

   public void SaveXml()
   {
      this.xmldocument.Save(this.stream);
   }
}

但是,Test节点的值永远不会改变。这是怎么回事?

0 个答案:

没有答案