Я работаю над приложением MVC, и в определенном разделе веб-сайта мне нужно отправлять уведомления по электронной почте (я предполагаю, что максимум 10). Поэтому я подумал, что сохраню электронные письма в виде списка в файле web.config, а затем перебираю список для отправки писем.
Сначала мне надоело создавать настраиваемый раздел и добавлять нужные мне данные (в основной файл web.config) вот так (Справочник):
Мой код:
файл web.config:
<configSections>
<section
name="AdminEmails"
type="System.Configuration.NameValueFileSectionHandler,System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<AdminEmails>
<add key="email1" value="[email protected]" />
<add key="email2" value="[email protected]" />
<add key="email3" value="[email protected]" />
<add key="email4" value="[email protected]" />
</AdminEmails>
Код в контроллере:
NameValueCollection section =
(NameValueCollection)ConfigurationManager.GetSection("AdminEmails");
//... loop through emails in 'AdminEmails' section...
Но затем я получил сообщение об ошибке, в котором говорилось, что не может быть дубликата <configSection>
, поскольку в другом файле web.config уже был <configSection>
. Поэтому вместо этого я добавил данные в файл web.config, сохраненный в папке представлений. Веб-сайт работал, однако переменная section
была null
. Я думаю, это потому, что ConfigurationManager.GetSection()
попытался получить раздел из «основного» файла web.config. Я не знаю, возможно ли получить доступ к файлу web.config, сохраненному в папке представлений, через код.