2011-09-27 54 views
3

我有一些值希望能夠設置,並且應用程序從某種文件加載它們。爲C#應用程序存儲/設置配置設置的最佳方式是什麼?

唯一的概念,我能想到的,是一個簡單的txt文件,可能有以下幾行:

DatabaseName = "DB1/test" 
DatabasePassword = "password" 
Development = "true" 

但即時想它應該是在某種配置文件的?再加上讀取這些值的txt文件不是完全整潔的代碼。這將是很好,如果我可以在我的應用只是說得到數據庫名稱:

configfile.DatabaseName 

感謝, 保羅

+0

什麼樣的應用程序? Winforms,WPF,Web,MVC ..? – stuartd

+0

@StuartDunkeld,它的.Net(C#)webservice。 – Doomsknight

回答

10

你真的應該使用內置的Application Settings

您可以使用ConfigurationManager

ConfigurationManager.AppSettings["MySetting"] = "SomeStuff"; 
var mySetting = ConfigurationManager.AppSettings["MySetting"]; 

也有使用ConfigurationManager中

var conn = ConfigurationManager.ConnectionStrings["DevSqlServer"]; 
您的連接字符串直接訪問直接訪問簡單的設置

所有這些都存儲在XML文件中,默認情況下是* .config文件。


要從評論

配置設置可以做多種方式回答Doomsknight的問題,但默認情況下,它們存儲在兩個地方。

應用程序級別設置存儲在配置文件中。

對於可執行程序,此文件與.exe位於同一目錄中,並且以程序集或可執行文件命名。

示例:MyAssembly.configAnother.Assembly.config

對於web應用程序中,設置存儲在web.config文件(通常)位於所述web應用程序的根目錄下。這些應用程序分層次應用,可以位於Web應用程序的每個目錄級別。

示例:MySite\web.configMySite\SubDirectory\web.config

用戶範圍設置stored in the user profile

實施例:C:\Documents and Settings\USERNAME\Local Settings\Application Data\ApplicationName

連接字符串被存儲在在配置文件中<connectionStrings></connectionStrings>部。

<connectionStrings> 
    <clear /> 
    <add name="Name" 
    providerName="System.Data.ProviderName" 
    connectionString="Valid Connection String;" /> 
</connectionStrings> 

這些設置可以很容易地在配置文件直接修改,但無需編寫一些代碼來自動刷新的配置文件的部分(這是可能的),通常需要一個應用程序重新啓動。

我希望這會有所幫助。

+0

+1,內置,強類型和使用每個用戶或每個應用程序的存儲,使用任何你需要:) –

+1

@Doomsknight增加了一些信息來回答你的問題 – Josh

+0

@Josh。優秀的東西! :) 非常感謝。確定我的意見是有道理的,但你給了一個很好的答案:) – Doomsknight

3

.NET有內置的配置平臺。只需將一個app.config文件添加到您的項目中,並使用ConfigurationManager庫來訪問這些值。

+0

我已經看過這個,但它似乎是xml。雖然它確實提供了首選的外部文件。 – Doomsknight

+2

是的,它是XML,它是一個非常強大的平臺,因爲您可以定義各種自己的配置部分,或者可以保持它非常簡單,只需添加新的鍵和值。 –

相關問題