代码之家  ›  专栏  ›  技术社区  ›  epitka

正在读取不带配置节的配置文件

  •  0
  • epitka  · 技术社区  · 15 年前

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

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

    更新:我不能更改文件中的任何内容,文件已经被一些自行开发的框架使用多年。文件中的所有内容都显示在上面。

    更新2:第二次查看显示此文件引用自应用程序配置作为

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

    它允许我使用ConfigurationManager.ConnectionString.

    3 回复  |  直到 15 年前
        1
  •  1
  •   Matt Hamsmith Rahul Singh    15 年前

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

    手动操作,您至少需要:

    <?xml version="1.0"?>
    <configuration>
        <connectionStrings>
            <clear />
            <add name="MyConnectionStringName" connectionString="{connection string}"/>
        </connectionStrings>
    </configuration>
    
        2
  •  0
  •   Dani    15 年前

    怎么了

    <Configuration>
      <appSettings>
        <add key="MyConnectionStringName" value="{here is a connection string}"/>
      </appSettings>
    </Configuration>
    
        3
  •  0
  •   SecretDeveloper    15 年前

    你可以把它加载到XmlDocument和load方法中。

    加载后,可以使用带有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"];
    }