簡體   English   中英

如何使用最少的代碼讀取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>

假設我想要一種只能基於值讀取數據的技術。 如果我提供英國作為值,則功能將返回英國郵件id test-uk@mysite.com

指導我如何輕松編寫最少的代碼。 謝謝

您可以在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");

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM