如何用最少的代码读取 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);
这是我在 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);