.NET 4.x Работа с app.config - C#
Формулировка задачи:
Собственно есть app.config
Потребовало в него сохранять объекты более сложные чем просто ключ-значение.
Но при попытке открыть его в конструкторе пишет ошибку.
Не могу понять как его читать....
Ругается что Параметр 'exePath' является неверным.
Дергаю. Возвращает совершенно пустые конфиги.
Делаю
И в папке появляется файл config.config.config
и как это исправить не знаю.
причем если я буду писать конфиги в нём то всё подтягивается
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="CheckApp.Properties.Wa" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<section name="CheckApp.Properties.La" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<connectionStrings>
<add name="DatabaseConnection" connectionString="Data Source=127.0.0.1; Initial Catalog=instapay; User Id=App; Password=123456;" />
</connectionStrings>
<appSettings>
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
</startup>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
</providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
</providers>
</roleManager>
</system.web>
<userSettings>
<CheckApp.Properties.Wa>
<MtSettings>
<add PmId="2812" Id="1" PrivKey="*****" />
<add PmId="2814" Id="1" PrivKey="*****" />
</MtSettings>
<setting name="Url" serializeAs="String">
<value>https://test.com/</value>
</setting>
<setting name="CheckTimeOut" serializeAs="String">
<value>25000</value>
</setting>
<setting name="CheckPeriod" serializeAs="String">
<value>120</value>
</setting>
</CheckPaymentsApp.Properties.Wa>
<CheckPaymentsApp.Properties.La>
<setting name="Interface" serializeAs="String">
<value>125</value>
</setting>
<setting name="Url" serializeAs="String">
<value>https://test.com/</value>
</setting>
</CheckPaymentsApp.Properties.La>
</userSettings>
</configuration>
Решил забить на вписывание конфигов в app.config их слишком много, идея плохая.
Решил считывать их и самого сервиса. Но как не понятно
return ConfigurationManager.OpenExeConfiguration($"{Environment.CurrentDirectory}\\ExternalServices\\{configName}config.config");
О как интересно...
return ConfigurationManager.OpenExeConfiguration($"{Environment.CurrentDirectory}\\ExternalServices\\{configName}\\config.config");configuration.Save();
Решение задачи: «.NET 4.x Работа с app.config»
textual
Листинг программы
ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap
{
ExeConfigFilename =
$"{Environment.CurrentDirectory}\\ExternalServices\\{configName}\\{configName}.config"
}, ConfigurationUserLevel.None)