有没有办法将我的web.config文件的'appSettings'部分中的值检索为一组名称 - 值对?我想创建一个api控制器方法来返回这个对象,这样我就可以从我的前端访问设置集合(理想情况下作为JSON对象)。我尝试返回WebConfigurationManager.AppSettings
,但它只返回一个只包含设置名称的字符串数组(没有值)。我一直在寻找答案近2个小时,却找不到答案。有帮助吗?感谢。
答案 0 :(得分:1)
我知道没有为此提供的简单机制,因为NameValueCollection类型不仅仅是一个简单的名称/值字典,并且可能并不总是很容易表示为一个。
NameValueCollection 中的每个键可能 多个值。
如果为特定名称分配了多个值,则该名称的值将成为所有这些值的逗号分隔列表值。如果这些值中的任何一个本身包含逗号,那么这可以使这些值难以解密(即应用程序/上下文特定)。
因此,您必须决定在每种情况下如何处理特定 NameValueCollection 的内容。
如果您的特定 AppSettings 包含真正简单的名称/值对,或者您乐意处理任何逗号分隔的多值,那么您当然可以执行类似的操作:
var dict = new System.Collections.Generic.Dictionary<String, String>();
var settings = System.Configuration.ConfigurationManager.AppSettings;
foreach ( var k in settings.AllKeys )
{
dict.Add(k, settings[k]);
}
var json = Newtonsoft.Json.JsonConvert.SerializeObject(dict);
如果没有提供完整的解决方案,希望这会让你走上正轨。