阅读App.config的特定部分

时间:2017-11-15 15:07:30

标签: c# .net oracle

我正在尝试从oracle.manageddataaccess.client文件中的App.config部分获取值。本节如下所示:

<oracle.manageddataaccess.client>
    <version number="*">
        <dataSources>
            <dataSource alias="alias1" descriptor="connection string 1" />
            <dataSource alias="alias2" descriptor="connection string 2" />
        </dataSources>
    </version>
</oracle.manageddataaccess.client>

我尝试使用ConfigurationManager API来读取值,但我没有运气。

使用:

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

config.AppSettings.Settings["oracle.manageddataaccess.client"]

只返回一个空字符串。

config.Sections似乎仅适用于明确为section代码的代码。

我只需要能够阅读本节中的dataSource值。

更新: config.Sections["oracle.manageddataaccess.client"].SectionInformation会返回有关该部分的信息,而GetRawXml()正在接近我想要的内容,但我正在尝试获取此部分的特定子集。

1 个答案:

答案 0 :(得分:-1)

我没有找到我想要的东西,但我找到了解决方法。 如果其他人有同样的问题,您可以使用XDocument和Linq来过滤您需要的内容。您需要添加using语句:System.LinqSystem.Xml.Linq

XDocument doc = XDocument.Parse(config.Sections["oracle.manageddataaccess.client"].SectionInformation.GetRawXml());
var value = from node in doc.Descendants("dataSource")
            where node.Attribute("alias").Value == whatever
            select node.Attribute("descriptor").Value;
相关问题