我正在用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
节点的值永远不会改变。这是怎么回事?