【问题标题】:How to include a config file for .Net如何包含 .Net 的配置文件
【发布时间】:2011-04-07 23:30:39
【问题描述】:

有没有办法让主 .net 配置文件 app.config/web.config 包含另一个配置文件?我需要将内容保存在单独的文件中,但将它们链接在一起。

这是我想要包含的示例:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
      <section name="LocationSearch.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <applicationSettings>
    <LocationSearch.Properties.Settings>
        <setting name="MapQuestApiKey" serializeAs="String">
        <value>some value here...</value>
        </setting>
        <setting name="MapQuestClientCode" serializeAs="String">
        <value>another value here...</value>
        </setting>
    </LocationSearch.Properties.Settings>
  </applicationSettings>
</configuration>

【问题讨论】:

  • 添加了我想要包含在主配置文件中的 XML 示例。

标签: .net configuration include


【解决方案1】:

是的,带有“文件”属性

<appSettings file="configFiles/otherConfigFile.config">

MSDN info

MSDN 文章中有关使用“文件”属性的一些相关信息:

单独文件的内容与 Web.config 文件中的 appSettings 部分合并。此功能仅限于 appSettings 属性。

注意:在 .NET Framework 2.0 版中,您现在可以将支持 configSource 属性的所有配置元素的配置设置包含在单独的文件中。但是,当您使用 configSource 属性时,您必须将整个部分移动到单独的文件中,因为没有合并元素设置。

【讨论】:

    【解决方案2】:

    是的,您可以使用 configSource 属性将单独的文件包含到主 .config 中,如下所示:

    <securityConfiguration configSource="SomeOtherConfigFile.config" />
    

    您以这种方式包含的外部配置文件必须位于主 .config 文件的同一目录(或子文件夹)中。

    SectionInformation.ConfigSource Property

    【讨论】:

    • 不错!该元素被称为“securityConfiguration”的任何具体原因?我想我会期待像“
    • 您可以将 configSource 属性与我相信的任何配置部分一起使用。我只是以 securityConfiguration 为例,因为它在我方便的配置文件中:)
    • 听起来你可以将“configSource”属性添加到任何元素,它会注入链接文件中的任何内容,对吗?
    • 我相信您只能将configSource属性与ConfigurationSection一起使用,例如appSettings、securityConfiguration等。
    【解决方案3】:

    是的,我这样做是为了 URL 重写规则。

    所以在我的 web.config 中我这样做:

    <urlrewritingnet configSource="UrlRewriting.config" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 1970-01-01
      • 2013-06-20
      • 2011-01-06
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      相关资源
      最近更新 更多