1

我在 web.config 文件中创建了自定义标签。这些值存储在哈希表中。存储在哈希表中后,我读取键和值都能够读取键但不能读取值。这是我在 web.xml 中的代码。配置

<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。我将值 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] 读取其给出的错误值时。

4

3 回答 3

1

尝试使用

App.BlockIpSection

或者

ConfigurationManager.AppSettings["BlockIpSection"]
于 2013-10-08T04:57:32.993 回答
0

在 web.xml 中定义您的键和值。配置。像这样 。

<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   
}
于 2013-10-08T11:07:58.497 回答
0

首先,您需要在web.config中提及两个标签的,然后 使用NameValueCollection而不是Hashtable

Hashtable的问题如下:

在添加手表

试试这个代码块:

NameValueCollection nvObj = new NameValueCollection();
nvObj = ConfigurationManager.GetSection("MyCustomSettings") as NameValueCollection;
Response.Write(hs["key1"] + "</br>"); 
于 2013-10-08T10:35:30.350 回答