C# 从XML配置文件加载和检索键/值对

C# 从XML配置文件加载和检索键/值对,c#,.net,xml,C#,.net,Xml,我希望能够使用C#.NET从XML配置文件中包含的键/值对中获取值 e、 g 我在这里回答我自己的问题,但我感兴趣的是从XML的键/值对中加载和检索值的替代选项-也许有一种更简单或更简洁的方法?获取配置文件,在我的情况下,该文件包含在ASP.NET服务器应用程序的根目录中: var doc = XDocument.Load(Server.MapPath("~") + "\\MyConfigFile.config"); 使用LINQ获取键/值对(在下面的LINQ查询中,我们首先查找'add'

我希望能够使用C#.NET从XML配置文件中包含的键/值对中获取值

e、 g



我在这里回答我自己的问题,但我感兴趣的是从XML的键/值对中加载和检索值的替代选项-也许有一种更简单或更简洁的方法?

获取配置文件,在我的情况下,该文件包含在ASP.NET服务器应用程序的根目录中:

var doc = XDocument.Load(Server.MapPath("~") + "\\MyConfigFile.config");
使用LINQ获取键/值对(在下面的LINQ查询中,我们首先查找'add'元素的后代,然后查找具有与'ConnectionString'匹配的'key'属性的第一个节点,然后获取'value'属性的值):

获取方括号内指定的键的值:

var connectionString = parameters["ConnectionString"];
XDocument类还包含更新更改并将更改保存回物理文件的方法

提供对客户端应用程序配置文件的访问。 您可以使用创建自定义节和使用方法获取键/值对

您可以使用它声明连接字符串,以获取当前应用程序默认配置的
ConnectionStringsSection
数据。 您可以通过以下方式访问连接字符串:

string conStr = Convert.ToString(ConfigurationManager.ConnectionStrings["connectionStringName"]);

更新

要定义自定义配置文件,请使用
ConfigurationManager.OpenMappedExeConfiguration
方法将客户端指定的配置文件打开为system.configuration.configuration对象

 ExeConfigurationFileMap custmConfg = new ExeConfigurationFileMap();
 custmConfg.ExeConfigFilename = @"d:\test\test.XML";
 Configuration config = ConfigurationManager.OpenMappedExeConfiguration(custmConfg, ConfigurationUserLevel.None);


您是否听说过
System.Configuration
名称空间和
ConfigurationManager
类?您是否试图获得徽章?:-)@RuiJarimba从未听说过它,但它很值得学习:)@BrianWarshaw,我以前试过使用它,但我真的不知道如何使用它。也许你能启发我?(以及遇到此问题的任何其他人)。从配置文件读取已多次结束…ConfigurationManager是否获得应用程序的默认配置文件?在我的例子中,我希望打开一个自定义XML配置文件,那么使用ConfigurationManager该如何工作呢?此外,我不确定ConnectionString属性是否适用于此处,因为我的连接字符串未存储在ASP.NET元素中,也不在我的web.config文件中。感谢您的更新,看起来它会很好地工作。ConfigurationManager是否允许对配置进行更改?如果是这样的话,是对物理文件的更改,还是它们只存在于web应用程序的服务器或会话实例中?@CiaranGallagher BTW问得好,我认为这个链接将为您提供更好的答案
<MyDictionary>
        <add key="JoinG." value="Gabriel.Boltniew@xxxx.com"/>
        <add key="Brancheau S." value="Steve.sd@xxxx.com"/>
        <add key="Cetrulo P." value="Paul.ds@xxxx.com"/>
        <add key="Chiu J." value="ds.Chiu@xxxx.com"/>
        <add key="D'Alessio S." value="dsd.sdd@ffdf.com"/>
NameValueCollection section = (NameValueCollection)ConfigurationManager.GetSection("MyDictionary");
string conStr = Convert.ToString(ConfigurationManager.ConnectionStrings["connectionStringName"]);
 ExeConfigurationFileMap custmConfg = new ExeConfigurationFileMap();
 custmConfg.ExeConfigFilename = @"d:\test\test.XML";
 Configuration config = ConfigurationManager.OpenMappedExeConfiguration(custmConfg, ConfigurationUserLevel.None);
NameValueCollection coll = (NameValueCollection)ConfigurationManager.GetSection("SectionName");