2011-06-28 72 views
5

我有兩個.config文件,我需要一個System.Configuration.Configuration這是他們之間的部分合並?通過合併兩個配置文件來創建System.Configuration.Configuration?

我可以將文件讀取爲XML並輕鬆創建所需的合併,但這是一個字符串或XDocument。但是,.net的System.Configuration似乎是嚴格基於文件的,所以我必須將它寫到我想避免的臨時目錄中。

有沒有辦法做到這一點?

實施例,config1.config

<configuration> 
    <appSettings> 
     <add key="CacheTime" value="300" /> 
    </appSettings> 
    <system.serviceModel> 
     <behaviors> 
      <endpointBehaviors> 
      <behavior name="MyBehavior"> 
       <!-- snipped --> 
      </behavior> 
      </endpointBehaviors> 
     </behaviors> 
    </system.serviceModel> 
</configuration> 

config2.config

<configuration> 
    <system.serviceModel> 
    <client> 
      <endpoint name="MyEndpoint" address="net.tcp://...." 
      behaviorConfiguration="MyBehavior" binding="netTcpBinding" 
      contract="IMyContract"> 
      </endpoint> 
    </client> 
    </system.serviceModel> 
</configuration> 

所得配置應該然後是這兩者的結合,以使我有兩個AppSetting和端點。現在,這個例子包含WCF,但我而不是尋找一個WCF特定的解決方案,因爲我絕對需要一個System.Configuration.Configuration對象。

config1和config2只是例子 - 它們的實際組合是非確定性的,我可能有config1和config4或config3和config4或config2和config3。

+0

嗨邁克爾。配置文件是不相交的?你能舉兩個例子,你期望的結果嗎?我很樂意幫助你。 – nick2083

+0

@nick添加了一個示例 –

回答

0

如果您的目標是簡單地使您的配置文件更加模塊化(並可能保護文件訪問特定部分),請參閱System.Configuration.SectionInformation.ConfigSource

+0

configSource只能悲傷地接受單個覆蓋。在這種情況下,由於實際的配置組合是非確定性的,它不會有任何好處。將澄清問題。 –

+0

哎呀。在這種情況下,我可以想象沒有辦法做到這一點,除了弄亂XmlDocument並編寫一個臨時文件來加載,正如你所提到的。好奇地看着這個;你永遠不會知道。 – drharris

相關問題