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的一段时间了。这是一个旧的应用程序,它周围构建了一些糟糕的框架,我无法更改它。