2012-12-17 55 views
0

我正在將MyApp.exe.config文件作爲xml複製到單獨的位置。在函數調用中傳遞XML數據作爲參數

我正在使用此自定義配置文件訪問並更改應用程序運行時的某些設置,而不是使用ConfigurationManager.<section>修改app.config

的問題是,默認app.config文件可能會在用戶機器上的稍後階段更新,我想這些改變傳播回我的自定義配置文件。

這樣做的最好方法是什麼?

<configSections> 
    <section name="" type="" /> 
</configSections> 

<appSettings> 
    <add key="" value="" /> 
</appSettings> 

<ConnectionManangerProviders> 
    <provider name="" enabled="" type=""> 
     <pollingInterval></pollingInterval> 
    </provider> 
</ConnectionManagerProviders> 

<QueueManagerProviders> 
    <provider name="" enabled="" type="unique" encrypted="" signed="" cryptoProvider="" /> 
    <provider name="" enabled="" type="unique" encrypted="" signed="" cryptoProvider=""> 
     <queueName></queueName> 
    </provider> 
    <provider name="" enabled="" type="unique" encrypted="" signed="" cryptoProvider=""> 
     <applicationName></applicationName> 
     <connectionString></connectionString> 
    </provider> 
</QueueManagerProviders> 

例如,這就是配置文件的外觀。假設<QueueManagerProviders>下的元素值之一在app.config中被修改,我怎樣才能將這個文件中的數據傳遞給一個方法,以便該方法可以通過它有效地解析並更新自定義配置文件中的相應部分我創建的?

+0

所以你想在運行時讀取這個配置文件(如果它改變了)? – Andrei

+0

是的。其中一個服務將更新從服務器推送到配置文件。我想在我的自定義配置文件中獲得這些更新的設置。 –

+0

你看過System.Xml嗎?似乎你想至少使用XmlDocument –

回答

0

這尖叫一些壞設計,有可能更好的方法來實現整個功能。但是,如果你不在「服務」部分的控制,那麼你卡...

你可能需要FileSystemWatcher其中「偵聽文件系統更改通知,並引發事件當一個目錄,或目錄中的文件, 變化。」

添加事件處理程序,如果你的文件發生更改,再次讀取整個文件,並解析它。

+0

我明白。但我的問題不在於檢測更改事件,而是將數據收集到適當的數據結構(?)中,並將其傳遞給更新自定義配置文件的方法。 我不想覆蓋整個文件(自定義配置),而是反映對app.config所做的更改。 –