如何使用最少的代码读取web.config中的自定义节数据

时间:2015-05-18 11:31:54

标签: c# web-config

这是我在web.config中的自定义部分。现在我想通过c#

读取数据
test-uk@mysite.com

假设我想要技术,我只能根据价值读取数据。如果我提供英国作为价值,那么函数将返回英国邮件ID TTI

指导我如何轻松地编写最少的代码。感谢

2 个答案:

答案 0 :(得分:1)

您可以在webconfig中使用appsettings标记,如:

<configuration>
<appSettings>
<add key="test-uk@mysite.com" value="UK" />
<add key="test-us@mysite.com" value="US" />
<add key="test-ca@mysite.com" value="CA" />

然后你有了你的班级:

public class WebConfigreader
{
    public static string AppSettingsKey(string key)
    {
        if (WebConfigurationManager.AppSettings != null)
        {
            object xSetting = WebConfigurationManager.AppSettings[key];
            if (xSetting != null)
            {
                return (string)xSetting;
            }
        }
        return "";
    }
}

在你的逻辑中,你只是在呼唤:

String strUk = WebConfigreader.AppSettingsKey("test-uk@mysite.com");

答案 1 :(得分:1)

首先,您的XML似乎已被破坏:

必须是这样的:

<configuration>
  <MailList>
    <MailID id="test-uk@mysite.com" Value="UK" />
    <MailID id="test-us@mysite.com" Value="US" />
    <MailID id="test-ca@mysite.com" Value="CA" />
  </MailList>
</configuration>

此代码应该按您的要求执行:

        string country = "UK";
        var result =
            XDocument.Load("~/web.config")
                .Element("configuration")
                .Element("MailList")
                .Elements("MailID")
                .First(el => el.Attribute("Value").Value.Equals(country))
                .Attribute("id")
                .Value;

        Console.WriteLine(result);