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

How to read custom section data in web.config with minimum code

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

读取数据
<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" />
  </databases>
</configuration>

假设我想要一种只能根据值读取数据的技术。如果我提供 UK 作为值,那么函数将 return 英国邮件 ID test-uk@mysite.com.

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

您可以在您的网络配置中使用 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" />

然后你有你的 class:

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");

首先你的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);