我在web.config文件中创建了自定义标签。这些值存储在哈希表中。存储在哈希表中后,读取密钥和值都可以读取密钥而不是值。这是我的代码在web.config中
<configSections>
<sectionGroup name="BlockIpSection">
<section name="ipslist" type="CustomConfigurationHandler.CustomConfiguration, CustomConfigurationHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" allowLocation="true" allowDefinition="Everywhere"/>
</sectionGroup>
</configSections>
<BlockIpSection>
<ipslist>
<ipaddress1 value="100"></ipaddress1>
<ipaddress2></ipaddress2>
</ipslist>
</BlockIpSection>
这里有2个标签部分组名称和部分名称。我创建了标签为ipaddress1和ipaddress2.Am,将值100存储到ipaddress1标签。
我正在阅读这个web.config,就像这样
Hashtable config = (Hashtable)ConfigurationManager.GetSection("BlockIpSection/ipslist");
foreach (string key in config.Keys)
{
Response.Write(key + "<br>");
}
来自web.config的标签我们存储在哈希表中并使用key读取。当我使用config [key]读取其给出错误的值时。
答案 0 :(得分:1)
尝试使用
App.BlockIpSection
或
ConfigurationManager.AppSettings["BlockIpSection"]
答案 1 :(得分:0)
首先,您需要在 web.config 中为两个标记提及密钥和值,然后再 使用 NameValueCollection 代替 Hashtable 。
Hashtable 的问题如下:
试试这段代码:
NameValueCollection nvObj = new NameValueCollection();
nvObj = ConfigurationManager.GetSection("MyCustomSettings") as NameValueCollection;
Response.Write(hs["key1"] + "</br>");
答案 2 :(得分:0)
在网络中定义您的键和值。配置。像这样。
<BlockIpSection>
<ipslist>
<add key="ipaddress1 " value="100"/>
<add key="ipaddress2 " value="100"/>
// IP keys and values ....
</ipslist>
</BlockIpSection>
Hashtable config = (Hashtable)ConfigurationManager.GetSection("BlockIpSection/ipslist");
foreach (DictionaryEntry dicEntry in config)
//OR
// foreach (KeyValuePair<string,string> dicEntry in config)
{
string key = Convert.ToString(dicEntry.Key);
string val = Convert.ToString(dicEntry.Value);
// Your code goes here
}