Как изменить файл XML, встроенный в C #? - PullRequest
0 голосов
/ 11 октября 2018

Я разрабатываю приложение на 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 никогда не изменяется.О чем это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...