C#Configuration Manager-保存

时间:2017-03-30 13:48:50

标签: c# .net

我正在使用ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);打开配置文件,然后最终在该配置上调用Save()来更新配置。保存部分工作正常,但结果格式与输入格式不同。

调用Configuration.Save()时,有没有办法让格式保持不变?

在下面的代码中,我打算在调用Save()并更新我需要的值后,将“After”块看作“Before”块。

<items>
    <item domainName="DEV" url="http:/server1:8080" certificatePath="./cert1.cert" password="abc"/>
    <item domainName="QA" url="http://server2:8080" certificatePath="./cert2.cert" password="123"/>
    <item domainName="PROD" url="http://server3:8080" certificatePath="./cert3.cert" password="frt"/>
</items>

<items>
    <item domainName="DEV" url="http:/server1:8080"
        certificatePath="./cert1.cert" password="abc"/>
    <item domainName="QA" url="http://server2:8080"
        certificatePath="./cert2.cert" password="123"/>
    <item domainName="PROD" url="http://server3:8080"
        certificatePath="./cert3.cert" password="UpdatedProperty"/>
</items>

1 个答案:

答案 0 :(得分:1)

您无法使用ConfigurationManager课程控制格式。根据{{​​3}},该类在解析文档时根本不会查找空格或注释等内容。同样,课程是密封的,因此您无法获得自己的问题解决方案。

您可以使用XDocumentXmlDocument对其进行解析,以便在保留空白时找到需要更新和保存的密钥。显然不理想但目前似乎是唯一的选择。