Обновлять файл app.config программно с помощью ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
обновить файл app.config программно с помощью
Конфигурация config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
это мой xml
<configuration>
<configSections>
<section name="nhibernateSettings" type="ProjectBase.Data.OpenSessionInViewSection, ProjectBase.Data" />
</configSections>
<appSettings>
<add key="NHibernateConfigPath" value="D:\PROJEKTI\crawler\WebCrawlerSuite\ViaMura.Web\NHibernate.config" />
<!--<add key="NHibernateConfigPath" value="C:\_ZAGON\ViaMura\CurrencyApp\at\NHibernate.config" />-->
<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings>
<connectionStrings>
<add name="connectionString" connectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Viamura_at;Data Source=.\SQL2008" providerName="System.Data.SqlClient" />
<!--<add name="connectionString" connectionString="server=193.37.152.24\SQL2008;User Id=DBUser;password=Lualah8991;database=Viamura_at" providerName="System.Data.SqlClient" />-->
</connectionStrings>
<nhibernateSettings>
<!-- List every session factory that will be needed; transaction management and closing sessions
will be managed with the open-session-in-view module -->
<sessionFactories>
<clearFactories />
<sessionFactory name="WebCrawlerFactory" factoryConfigPath="D:\PROJEKTI\crawler\WebCrawlerSuite\ViaMura.Web\NHibernate.config" isTransactional="true" />
<!--<sessionFactory name="WebCrawlerFactory" factoryConfigPath="C:\_ZAGON\ViaMura\CurrencyApp\at\NHibernate.config" isTransactional="true" />-->
</sessionFactories>
</nhibernateSettings>
Как я могу программно редактировать WebCrawlerFactory? Я использую
Конфигурация config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
Ответы
Ответ 1
Вы можете использовать следующий код:
private void UpdateConfig(string key, string value, string fileName)
{
var configFile = ConfigurationManager.OpenExeConfiguration(fileName);
configFile.AppSettings.Settings[key].Value = value;
configFile.Save();
}
Где: fileName - это полный путь + имя приложения (c:\project\application.exe)
В вашем случае измените AppSetting по разделам:
configFile.Sections["nhibernateSettings"]
Ответ 2
ProjectBase.Data.OpenSessionInViewSection указывает, что уже существует определенная настраиваемая секция конфигурации, которая позволит получить доступ к настройкам конфигурации. Он может, однако, быть защищенным или внутренним для NHibernate.
Посмотрите, можете ли вы ссылаться на этот класс для доступа к настройкам.
Вы также можете создать собственный раздел конфигурации самостоятельно, однако это может привести к неправильной настройке NHibernate, поскольку он не сможет правильно загрузить раздел конфигурации.
см. Практическое руководство. Создание пользовательских разделов конфигурации с помощью ConfigurationSection