2009-12-08 82 views
0

有點尷尬問,但因爲我從來沒有這樣做,在這裏。我有一個配置文件,它具有以這種格式存儲的應用程序的連接字符串。閱讀配置文件沒有配置部分

<connectionStrings> 
    <clear /> 
    <add name="MyConnectionStringName" connectionString="{here is a connection string}"/> 
</connectionStrings> 

我試過配置管理器,但它要求該文件具有「配置」根元素。配置名稱空間中是否還有別的東西,還是應該使用LinqToXml?

更新:我無法更改文件中的任何內容,文件已由本地框架中的某些使用多年。上面顯示了文件中的所有內容。

UPDATE2:二看就會發現該文件從App.Config中引用爲

<connectionStrings configSource="Config\connectionstrings.config"/> 

,讓我用ConfigurationManager.ConnectionStrings。

回答

0

什麼是錯在

<Configuration> 
    <appSettings> 
    <add key="MyConnectionStringName" value="{here is a connection string}"/> 
    </appSettings> 
</Configuration> 
+0

這是一箇舊的應用程序,它有一些蹩腳的框架構建它,我無法改變它。 – epitka 2009-12-08 17:21:50

1

還有更多的不僅僅是connectionStrings節的配置文件。如果您使用Visual Studio,修復問題的簡單方法是使用IDE添加新的應用程序配置文件。 IDE將爲您創建一個shell文件,然後您可以將connectionStrings部分添加到(在配置部分中)。

通過手,在最低限度,你需要這樣的:

<?xml version="1.0"?> 
<configuration> 
    <connectionStrings> 
     <clear /> 
     <add name="MyConnectionStringName" connectionString="{connection string}"/> 
    </connectionStrings> 
</configuration> 
0

那麼你可以將其加載到一個XmlDocument和Load方法。

一旦你裝載了它,你可以使用SelectNodes和xpath查詢來找回你想要的節點。

關我的頭的東西頂像

string conn; 
XmlDocument xdoc = new XmlDocument(); 
xdoc.Load("path_to_file"); 
var configs = xdoc.SelectNodes("ConnectionStrings/Add"); 
foreach(XmlNode n in configs) 
{ 
    conn = n.Attributes["connectionString"]; 
} 

試一下看看。你可能需要玩一下xpath,自從我寫了一段之後,已經有一段時間了。