我正在开发一个 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="test@test.com" />
<add key="email2" value="abc@abc.com" />
<add key="email3" value="email@email.com" />
<add key="email4" value="username@domain.com" />
</AdminEmails>
控制器中的代码:
NameValueCollection section =
(NameValueCollection)ConfigurationManager.GetSection("AdminEmails");
//... loop through emails in 'AdminEmails' section...
但是后来我收到一个错误,指出不能重复<configSection>
,因为另一个 web.config 文件中已经有一个<configSection>
。因此,我将数据添加到保存在 views 文件夹中的 web.config 文件中。该网站运行,但section
变量是null
. 我在想这是因为ConfigurationManager.GetSection()
试图从“主”web.config 文件中获取一个部分。我不知道是否有可能通过代码访问保存在 views 文件夹中的 web.config 文件。