从web.config文件中读取自定义标签

时间:2013-10-08 04:14:36

标签: c# asp.net

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

3 个答案:

答案 0 :(得分:1)

尝试使用

App.BlockIpSection

ConfigurationManager.AppSettings["BlockIpSection"]

答案 1 :(得分:0)

  

首先,您需要在 web.config 中为两个标记提及密钥,然后再   使用 NameValueCollection 代替 Hashtable

Hashtable 的问题如下:

on Add watch

试试这段代码:

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   
}