C# 从另一个项目读取AppSetting密钥时出现问题';s web.config
从C# 从另一个项目读取AppSetting密钥时出现问题';s web.config,c#,C#,从Web.Config 我总是得到null 为什么会这样 Web.config <!-- Message setting--> <add key="applicationType" value="release"/> 这里值得一提 Web.config是另一个项目的一部分,我正在尝试从另一个项目访问它 这里值得一提 Web.config是另一个项目的一部分,我正在尝试访问它 从另一个项目 这是你的问题 ConfigurationManager.AppSettings使用
Web.Config
我总是得到null
为什么会这样
Web.config
<!-- Message setting-->
<add key="applicationType" value="release"/>
这里值得一提
Web.config是另一个项目的一部分,我正在尝试从另一个项目访问它
这里值得一提
Web.config是另一个项目的一部分,我正在尝试访问它
从另一个项目
这是你的问题
ConfigurationManager.AppSettings
使用绑定到条目程序集的配置文件,不能使用其他项目中的配置文件
在此特定实例中,web.config应该是项目的一部分,在应用程序的根目录中,web.config必须是项目已启动的一部分 如果您已经启动了
BotServiceHost
,ConfigurationManager
将在BotServiceHost
内部使用config
。但例如,如果您从控制台应用程序(沙盒)启动相同的dll
(BotServiceHost
),则必须在此沙盒中添加另一个config
文件
无论您使用的是
app.config
还是web.config
如果您的应用程序包含多个Visual Studio项目,您都需要确保使用同一个项目访问密钥,而不是从解决方案中的另一个项目访问密钥
如果您的密钥属于解决方案中的另一个项目,那么下面是执行相同操作的代码
ConfigurationFileMap fileMap = new ConfigurationFileMap(file); //Path to your config file
Configuration configuration = ConfigurationManager.OpenMappedMachineConfiguration(fileMap);
string applicationType = configuration.AppSettings.Settings["applicationType"].Value;
请点击下面的链接了解更多信息请发布更多您的web.config。您确定已将其放入正确的web.config中吗?有可能,您只需打开文件即可,例如@DavidG谢谢您的更正。我已经更新了我的答案。这不太适合web.config-谢谢大家纠正我。非常感谢。
ConfigurationFileMap fileMap = new ConfigurationFileMap(file); //Path to your config file
Configuration configuration = ConfigurationManager.OpenMappedMachineConfiguration(fileMap);
string applicationType = configuration.AppSettings.Settings["applicationType"].Value;