我的网络配置如下:
<appSettings>
<add key="One" value="1" xdt:Transform="Insert"/>
</appSettings>
如果我需要访问值1,我可以编写以下代码:
ConfigurationManager.AppSettings("One");
但如果网络配置如此,
<countryAppSettings>
<add key="Two" value="2" xdt:Transform="Insert"/>
</countryAppSettings>
我可以使用ConfigurationManager
类
ConfigurationManager.CountryAppSettings("Two");
这可能在c#中吗?
答案 0 :(得分:0)
是的,您可以这样做,但您还需要在配置文件中包含自定义配置部分。有一篇MSDN文章here描述了如何做到这一点。
因此,您首先需要添加自定义配置部分:
<configuration>
<configSections>
<sectionGroup name="countrySettings">
<section name="countrySetting" type="Custom.CountrySettingSection" allowLocation="true" allowDefinition="Everywhere" />
</sectionGroup>
</configSections>
</configuration>
然后,您通常会更像这样定义您的设置,如果您有一个非常丰富的对象,那就太棒了:
<countrySetting customKey="2">
<richerObject>2</richerObject>
</countrySetting>
然后你需要一个像这样构造的支持对象:
namespace Custom
{
public class CountrySettingSection : ConfigurationSection
{
// Create a "customKey" attribute.
[ConfigurationProperty("customKey", DefaultValue = "0", IsRequired = false)]
public int CustomKey
{
get
{
return (int)this["customKey"];
}
set
{
this["customKey"] = value;
}
}
}
答案 1 :(得分:0)
ConfigurationManager.AppSetting是属性,没有方法。这个 属性类型是NameValueCollection,你可以像这样使用
ConfigurationManager.AppSettings["One"]
或
ConfigurationManager.AppSettings.GetValues("One")
您可以自定义您的web.config https://msdn.microsoft.com/en-us/library/2tw134k3.aspx