2014-03-29 43 views
0

我有一個C#應用程序,我有方法說,方法1,方法2 ....方法n。每種方法都是功能。我不希望我的應用程序始終執行所有功能,但它應該是可配置的。所以我需要一個配置文件來執行哪些功能。請給我一個方法來做到這一點。我正在考慮使用XML文件來存儲方法名稱並使用反射來調用它們。但是,有沒有專業的方法來做到這一點?建議配置文件的方法

+2

是的,'app.config'或'web.config'。 – Yuck

回答

1

C#應用程序有一個app.config(用於桌面應用程序)或web.config(用於asp.net應用程序)文件。在這個文件中,你可以指定設置,如下所示:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
    <appSettings> 
    <add key="something" value="1"/> 
    </appSettings> 
</configuration> 

在應用程序代碼,您可以像這樣訪問這些設置:

var something = ConfigurationManager.AppSettings["something"]; 

注意:您要添加一個引用到System.Configuration到 訪問ConfigurationManager

當您編譯您的應用程序時,app.config將轉換爲YourApp.exe.config,您可以將其與應用程序一起部署,以控制設置而無需重新編譯應用程序。

您可以在MSDN上閱讀關於configuration managerapp.settings的更多信息。

0

您的問題包含幾個子查詢。專業的工作開始於將一個問題分解成其最重要的部分。

讓我們來看看:

  • 應該在哪裏數據去?想起註冊表中的任何文本文件。
  • 它應該得到什麼名字?可讀且有意義的,如YourApplication.config。
  • 誰創建和存儲數據?

你沒告訴我們;可以是相同的應用程序或不同的應用程序或人類。在後一種情況下,請確保數據不是拼寫錯誤 。通常的方法是列出所有有效的名稱,並讓 用戶只需在行的開頭添加或刪除註釋標記。

  • 它們應該如何存儲?除非:見上面
  • 最後他們應該如何使用?使用反射看起來似乎過分了,除非你有一個系統,因爲可能插入了新功能,所以你不能預先知道所有可能的功能。否則,只需使用if else if塊或更奇特的東西創建一個Dictionary<string, Action>或類似的。