2011-07-18 110 views
0

我正在編寫一個使用WPF和C#的程序,該程序有一個「app.config」文件,用於存儲多個服務器的名稱和位置。該程序動態讀取此配置文件,並在UI中顯示它(等等)。編輯.config文件代碼

我想包括一個前端的方式來添加新的服務器到配置文件,以便用戶可以輸入所需的服務器的屬性,我的程序將其添加到配置文件。

我的配置文件本質上看起來是這樣的:

<ServerConfig> 
<Environment name="PROD"> 
    <Server host="h1" share="s1" source="x1"/> 
    <Server host="h6" share="s1" source="x1"/> 
    <Server host="h7" share="s1" source="x1"/> 
    <Server host="h8" share="s1" source="x1"/> 
    <Server host="h155" share="s1" source="x1"/> 
</Environment> 
<Environment name="DEV"> 
    <Server host="h2" share="s2" source="x2"/> 
    <Server host="h55" share="s1" source="x1"/> 
    <Server host="h115" share="s1" source="x1"/> 
</Environment> 
<Environment name="QA"> 
    <Server host="h3" share="s3" source="x3"/> 
    <Server host="h46" share="s1" source="x1"/> 
    <Server host="h15" share="s1" source="x1"/> 
    <Server host="h2" share="s1" source="x1"/> 
    <Server host="h234" share="s1" source="x1"/> 
    <Server host="h6" share="s1" source="x1"/> 
    <Server host="h146" share="s1" source="x1"/> 
</Environment> 
</ServerConfig> 

我希望用戶能夠輸入主機,共享和來源,和環境,我需要找到一種方法來地方Xml代碼行在適當的地方。

有沒有一種方法可以搜索帶有某個「名稱」的標籤(如搜索'QA'環境),然後添加該行? XmlWriter/XmlSerializer似乎只能從一個Xml文件的開頭寫入,而不能在寫入之前對其進行梳理。

我很感激任何幫助。

+0

你用-100點開始這個問題。你假設你可以寫入app.config文件。你不能。並非沒有獲得UAC許可。它現在可以工作,在您部署應用程序後它將無法工作。 –

+0

是的,你說得對。不過,我想我對單獨的XML文件有同樣的問題。 – Ryan

回答

0

我建議創建封裝這些信息(服務器)和功能(添加服務器)的自定義對象,然後序列化一個獨立於web.config的XML文件。這將您的自定義設置保留在一個地方,並避免插入標準配置文件中,我認爲這對於在運行時不會更改的設置很有用。我爲一個項目完成了這項工作,並且運行良好。