C# ASP MVC 从 Web 配置文件中提取数据不起作用



我正在尝试从 Web 配置文件中提取数据,如此 msdn 资源所述。

这是我的代码:

System.Configuration.Configuration activeCampaignApiSetting1 =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(null);
if (activeCampaignApiSetting1.AppSettings.Settings.Count > 0) {
System.Configuration.KeyValueConfigurationElement activeCampaignApiKeySetting =
activeCampaignApiSetting1.AppSettings.Settings["ActiveCampaignApiKey"];
if (activeCampaignApiKeySetting != null) {
activeCampaignApiKey = activeCampaignApiKeySetting.Value;
}
System.Configuration.KeyValueConfigurationElement activeCamapignApiUrlSetting =
activeCampaignApiSetting1.AppSettings.Settings["ActiveCampaignApiUrl"];
if (activeCamapignApiUrlSetting != null) {
activeCampaignApiUrl = activeCamapignApiUrlSetting.Value;
}
}

当我尝试实例化这个类时:

var acs = new Acs(activeCampaignApiKey, activeCampaignApiUrl);

它抛出一个异常,告诉我值为空。

Web 配置文件中的值在那里:

<add key="ActiveCampaignApiKey" value="apikey_removed" />
<add key="ActiveCampaignApiUrl" value="apiurl_removed" />

有人知道我可能哪里出错了吗? 干杯

如果它们是 web.config 中的 appSetup,您可以通过ConfigurationManager.AppSettings访问它们。

<?xml version="1.0"?>
<configuration>
<configSections>
<appSettings>
<add key="ActiveCampaignApiKey" value="apikey_removed" />
<add key="ActiveCampaignApiUrl" value="apiurl_removed" />
</appSettings>
</configSections>
</configuration>
string activeCampaignApiKeySetting 
= ConfigurationManager.AppSettings["ActiveCampaignApiKey"];
string activeCamapignApiUrlSetting 
= ConfigurationManager.AppSettings["ActiveCampaignApiUrl"];

请确保引用System.Configuration,并包含using System.Configuration;指令。

仅供参考:它们返回字符串值(不是键值对(。

好的,所以我有一个更好的解决方案,

当我与nopCommerce合作时,我需要使用:

private readonly ISettingService _settingService = EngineContext.Current.Resolve<ISettingService>();
string apikey = _settingService.GetSettingByKey<string>("apikey_removed");
string apiurl = _settingService.GetSettingByKey<string>("apiurl_removed");

如本论坛帖子中所述

然后在管理后端的配置>设置下>所有设置下,我在那里添加密钥。

这是一个更好的解决方案,因为如果需要更改 api 密钥或 url,可以通过 nopcommerce 管理面板完成。 而不是将解决方案重新生成/发布到 Web 服务器。

希望这对某人有所帮助:)

最新更新