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