我正在使用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>
答案 0 :(得分:1)
您无法使用ConfigurationManager
课程控制格式。根据{{3}},该类在解析文档时根本不会查找空格或注释等内容。同样,课程是密封的,因此您无法获得自己的问题解决方案。
您可以使用XDocument
或XmlDocument
对其进行解析,以便在保留空白时找到需要更新和保存的密钥。显然不理想但目前似乎是唯一的选择。