多个App.Config文件

时间:2010-04-01 11:36:07

标签: c# app-config

我想分开我的app.config文件。例如,我想将ServiceModel部分移动到同一项目中的另一个配置文件。我怎么能这样做?

感谢。

4 个答案:

答案 0 :(得分:5)

您应该能够将configSource属性设置为第二个文件(相对于第一个文件)的空元素。请参阅此处了解如何启用它for custom sections

答案 1 :(得分:3)

我找到了方法。我改变了这样的标签。

<system.serviceModel>
    <behaviors configSource="Behaviors.config">
    </behaviors>
    <services configSource="Services.config">
    </services>
    <bindings configSource="Bindings.config">
    </bindings>
    <extensions configSource="Extensions.config">
    </extensions>
  </system.serviceModel>

在我创建了Services.config文件后,我把它放了

<services>
  <service behaviorConfiguration="ServiceBehavior" name="EntLib31ExceptionTest.Service1">
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8001/ValidationService1/" />
      </baseAddresses>
    </host>
    <endpoint address="" 
               binding="wsHttpBinding" 
               bindingConfiguration="CustomBinding" 
               contract="EntLib31ExceptionTest.IService"    
               behaviorConfiguration="Validation"/>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>
</services>

我在Bindings,Behaviors,Extensions.config文件中所做的一样。

它有效

答案 2 :(得分:2)

使用类似的东西:

<?xml version="1.0"?>    
<configuration>    
    <appSettings />    
    <connectionStrings/>    
    <system.web>    
        <compilation debug="false" strict="false" explicit="true" />    
    </system.web>    
    <appSettings file="externalSettings.config"/>    
</configuration>

答案 3 :(得分:0)

据我所知,这是不可能的。

您可以做的是(如果我们谈论WCF代理)在您的代码中创建和配置您的代理。这样您就不需要 serviceModel 部分。

现在只需为您需要的数据定义自己的自定义部分,然后将其放在配置文件之外。