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;