app.config中的节类型

时间:2014-04-18 19:00:51

标签: c# app-config appsettings configsection

我正在讨论如何在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链接的类型提供了我将如何访问密钥和值?

1 个答案:

答案 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"];