【问题标题】:Reading config file without Configuration section读取没有配置部分的配置文件
【发布时间】:2010-12-24 12:21:03
【问题描述】:

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

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

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

更新:我无法更改文件中的任何内容,文件已经被一些本地框架使用多年。文件中的所有内容如上所示。

Update2:第二次查看显示该文件是从 App.Config 引用为

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

这允许我使用 ConfigurationManager.ConnectionStrings。

【问题讨论】:

    标签: asp.net configuration configuration-files


    【解决方案1】:

    您可以将它加载到 XmlDocument 和 Load 方法中。

    加载后,您可以使用 SelectNodes 和 xpath 查询来取回您想要的节点。

    在我的头顶上像

    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,因为我已经有一段时间没有写了。

    【讨论】:

      【解决方案2】:

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

      手动,至少,你需要这个:

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

      【讨论】:

        【解决方案3】:

        有什么问题

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

        【讨论】:

        • 这是一个旧应用程序,围绕它构建了一些糟糕的框架,我无法更改它。
        猜你喜欢
        • 1970-01-01
        • 2017-11-03
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 2016-01-11
        • 2011-05-25
        • 2011-09-24
        相关资源
        最近更新 更多