我已经寻找并搜索了解决方案,但只找到了直接合并的示例。
我的任务如下...
File1是我的“主”配置文件,我使用c#类模板将其反序列化。我的示例只是一个片段,它要大得多。
File2是包含仅在特定情况下使用的相同设置(相同类)的子集的文件。
我想同时反序列化并且仅覆盖File2中存在的File1中的那些设置。
顺便说一句,我什至无需将此文件保存到磁盘,最好更新File1反序列化的configuration
对象。
谢谢!
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Configuration));
using (StreamReader streamReader = new StreamReader("DiagsConfig.xml"))
configuration = (Configuration)xmlSerializer.Deserialize(streamReader);
文件1:
<Configuration>
<PathDataOutput>D:\Diagnostics Data</PathDataOutput>
<FRUTestTool>
<NumDirectoriesToKeep>5</NumDirectoriesToKeep>
<ControllerTest>
<IsEnabled>true</IsEnabled>
<Photocells>
<NumPolls>20</NumPolls>
</Photocells>
</ControllerTest>
</FRUTestTool>
</Configuration>
文件2:
<Configuration>
<FRUTestTool>
<ControllerTest>
<Photocells>
<NumPolls>200000000000000</NumPolls>
</Photocells>
</ControllerTest>
</FRUTestTool>
</Configuration>
组合:(如您所见,从文件2继承的NumPolls
仅是差异)
<Configuration>
<PathDataOutput>D:\Diagnostics Data</PathDataOutput>
<FRUTestTool>
<NumDirectoriesToKeep>5</NumDirectoriesToKeep>
<ControllerTest>
<IsEnabled>true</IsEnabled>
<Photocells>
<NumPolls>200000000000000</NumPolls>
</Photocells>
</ControllerTest>
</FRUTestTool>
</Configuration>