我對此絕對無能為力,基本上已經嘗試了所有方法。我也沒有看到任何關于這樣做的現有 stackoverflow 執行緒。
我的 C# 專案有一個 app.config 檔案,它存盤用戶可以創建和添加的服務器串列。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="servers" type="System.Configuration.AppSettingsSection" />
</configSections>
<servers>
<add key="server" value="678,true,true"/>
</servers>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>
<appSettings>
<add key="nightmode" value="Dark"/>
<add key="theme" value="Red"/>
</appSettings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="ControlzEx" publicKeyToken="69f1c32f803d307e" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
((NameValueCollection)ConfigurationManager.GetSection("servers")).Add("server", $"{port}," $"{ (dialogResult1 == MessageDialogResult.Affirmative) },{dialogResult2 == MessageDialogResult.Affirmative}");
當用戶在“服務器”部分添加新密鑰時,它會引發以下例外。
System.Configuration.ConfigurationErrorsException: 'The configuration is read only.'
我很困惑為什么會這樣
uj5u.com熱心網友回復:
我最終生成了自己的 XML 配置,因為這似乎是做事的最佳方式。
uj5u.com熱心網友回復:
你可以試試:
Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings.Add("test", "propertyValue");
config.Save(ConfigurationSaveMode.Modified, true);
System.Configuration.ConfigurationManager.RefreshSection("appSettings");
string test = ConfigurationManager.AppSettings["test"];
這將獲得 de appsettings 部分的值。
Ps.:您需要安裝包 System.Configuration.ConfigurationManager。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/383949.html
下一篇:在nifi中從xml中提取屬性
