我正在讨论如何在app.config的configsection中创建节组和节。 那么,我们来看一个样本
<configSections>
<sectionGroup name="trackGroup">
<section name="trackInfo" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</configSections>
<trackGroup>
<trackInfo>
<add key = "ASHUM" value="ASH-UM"/>
</trackInfo>
</trackGroup>
所以现在,当我浏览各种文章时,我发现每个人都使用不同类型的部分 所以,我在这里找到了不同的类型: http://msdn.microsoft.com/en-us/library/aa309408%28v=vs.71%29.aspx
但我在这里没有提到我使用的类型。 我从一个随机的例子中得到了这个类型,据我所知,它实际上是为appsetting部分定义设置。 有人可以帮助我,我的样本中的类型意味着什么是版本,公共令牌,文化我们如何定义这些? 另外我想知道哪种类型更好用? 就像我必须在运行时访问这些设置,甚至在运行时修改一些设置。
另外我认为这些不同的类型有不同的方式来访问它们? 就像上面我的示例中的情况一样,我正在访问键和值:
static void getFull(string sectionName)
{
System.Collections.Specialized.NameValueCollection section = (System.Collections.Specialized.NameValueCollection)System.Configuration.ConfigurationManager.GetSection(sectionName);
if (section != null)
{
foreach (string key in section.AllKeys)
{
Console.WriteLine(key + ": " + section[key]);
}
}
}
但是如果我们使用类似MSDN链接的类型提供了我将如何访问密钥和值?
答案 0 :(得分:2)
这是我为创建配置部分所做的事情。它还允许外部化部分。
<强>的App.config 强>
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="TrackInfo" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</configSections>
<TrackInfo configSource="TrackInfo.config"/>
</configuration>
<强> TrackInfo.config 强>
<?xml version="1.0" encoding="utf-8" ?>
<TrackInfo>
<add key="SOME_KEY" value="SOME_VALUE" />
</TrackInfo>
<强> C#强>
NameValueCollection section = (NameValueCollection)ConfigurationManager.GetSection( "TrackInfo" );
if( null == section ) throw new Exception( "Missing TrackInfo.config" );
string val = section["SOME_KEY"];