【问题标题】:Config file structure配置文件结构
【发布时间】:2018-04-25 06:09:12
【问题描述】:

我与app.config 文件混在一起。

我已经配置 failed 来获取连接字符串:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <configSections>
    <connectionStrings>
         <add name="MovieDBContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
         <add name="ProgrammingInCSharpConnection"  providerName="System.Data.SqlClient" connectionString="Data Source=(localdb)\v11.0;Initial Catalog=ProgrammingInCSharp;" />
    </connectionStrings>
   </configSections>
</configuration>

&lt;connectionStrings&gt; 置于&lt;connectionStrings&gt; 之外后问题已解决:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <configSections />
   <connectionStrings>
       <add name="MovieDBContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
       <add name="ProgrammingInCSharpConnection"  providerName="System.Data.SqlClient" connectionString="Data Source=(localdb)\v11.0;Initial Catalog=ProgrammingInCSharp;" />
   </connectionStrings>
</configuration>

但是我发现了很多下面有图案的样本

<configSections>
    <connectionStrings>
       ...
    </connectionStrings>
</configSections>

在某些情况下可能会起作用? 配置文件的一般逻辑是什么,每个部分可能包含什么样的信息?

【问题讨论】:

  • 记录在案:当您拥有 web.configasp.net 标签时,您正在谈论 app.config 文件。你说的是哪两个?
  • 既然您已经转到另一个问题,您能在这里回复答案吗?
  • 这适用于 app.config。但总的来说,了解 web.config 会很高兴

标签: c# connection-string app-config


【解决方案1】:

configSections 节点包含配置部分每个命名空间声明,但通常不用于连接字符串,除非它们是特定于命名空间的。

但是我发现了很多下面有图案的样本

你发现的模式永远不会起作用,因为&lt;connectionStrings&gt;不允许直接嵌套在&lt;configSections&gt;下。 这可以通过在&lt;section&gt; 本身下声明一个连接字符串变量来实现,并且如果服务器代码通过特定命名空间定位它们。

一个例子:

<configuration>
   <configSections>
      <section name="section1" type="System.MyNameSpace" />
   </configSections>
   <section1 connString="...conn.." />
</configuration>

在上面的示例中,命名空间System.MyNameSpace 现在将有一个名为connString 的变量(字段),因此它可以在后面的代码中定位它。

总而言之,如果你的连接字符串不是每个命名空间的,&lt;connectionStrings&gt; 元素应该直接嵌套在&lt;configuration&gt; 节点下,不要嵌套在其他任何地方。

【讨论】:

    【解决方案2】:

    没有。不可能有一个有效的app.config 文件,但在你的configSections 节点中有一个connectionStrings

    根据MSDN,这是允许的元素列表:

    • section
    • sectionGroup
    • add
    • clear

    connectionStrings 不在列表中,我不希望应用程序在该位置找到连接字符串。

    【讨论】:

      猜你喜欢
      • 2017-04-28
      • 2019-12-01
      • 2015-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多