Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在没有配置节的情况下读取配置文件_Asp.net_Configuration_Configuration Files - Fatal编程技术网

Asp.net 在没有配置节的情况下读取配置文件

Asp.net 在没有配置节的情况下读取配置文件,asp.net,configuration,configuration-files,Asp.net,Configuration,Configuration Files,问起来有点不好意思,但既然我从来没必要这么做,就这样吧。我有一个配置文件,其中以这种格式存储了应用程序的连接字符串 <connectionStrings> <clear /> <add name="MyConnectionStringName" connectionString="{here is a connection string}"/> </connectionStrings> 我尝试了ConfigurationMan

问起来有点不好意思,但既然我从来没必要这么做,就这样吧。我有一个配置文件,其中以这种格式存储了应用程序的连接字符串

<connectionStrings>
    <clear />
    <add name="MyConnectionStringName" connectionString="{here is a connection string}"/>
</connectionStrings>

我尝试了ConfigurationManager,但它要求文件具有“configuration”根元素。配置名称空间中是否还有其他内容,或者我应该只使用LinqToXml

更新:我无法更改文件中的任何内容,该文件已经被一些在自己开发的框架中使用多年了。文件中的所有内容如上所示

Update2:第二次查看显示此文件是从App.Config作为

  <connectionStrings configSource="Config\connectionstrings.config"/>

这允许我使用ConfigurationManager.ConnectionString

这有什么问题吗

<Configuration>
  <appSettings>
    <add key="MyConnectionStringName" value="{here is a connection string}"/>
  </appSettings>
</Configuration>

配置文件不仅仅是ConnectionString部分。如果您使用的是Visual Studio,解决问题的简单方法是使用IDE添加新的应用程序配置文件。IDE将为您创建一个shell文件,然后您可以将ConnectionString部分添加到其中(在配置部分中)

您至少需要手工操作:

<?xml version="1.0"?>
<configuration>
    <connectionStrings>
        <clear />
        <add name="MyConnectionStringName" connectionString="{connection string}"/>
    </connectionStrings>
</configuration>

您可以将其加载到XmlDocument和加载方法中

加载后,可以使用带有xpath查询的SelectNodes返回所需的节点

在我的脑海里,就像

string conn;
XmlDocument xdoc = new XmlDocument();
xdoc.Load("path_to_file");
var configs = xdoc.SelectNodes("ConnectionStrings/Add");
foreach(XmlNode n in configs)
{
     conn = n.Attributes["connectionString"];
}

试试看。您可能需要使用xpath,这已经是我编写xpath的一段时间了。

这是一个旧的应用程序,它周围构建了一些糟糕的框架,我无法更改它。