2013-03-21 57 views
1

我第一次使用app.config文件,我不確定如何在項目引用和app.config文件的情況下繼續。這裏是我的項目,我的工作描述:引用不同項目時使用app.config?

PROJECT1(過程記錄器)填充在PROJECT1 app.config文件中指定的數據庫日誌表。

Project2(calculator)運行計算並填充Project2 app.config文件中指定的數據庫中的表。使用對Project1的引用記錄日誌。

當我Project2中引用PROJECT1,在我的「發佈」文件夾中我沒有​​看到一個PROJECT1 app.config文件。處理這種情況的最佳方法是什麼?而不是在Project1中的app.config文件中配置數據庫,而應該讓它成爲Project2的參數以指定(Project2.LogConnectionString作爲參數發送給Project1中的函數)?或者有沒有辦法讓app.config文件出現在我的「Release」文件夾中?

任何幫助,將不勝感激,我不知道是什麼做的正確方法。謝謝!

回答

2

的配置文件是基於啓動項目。 這意味着當你在proj2中實例化proj1中的某些東西(proj1將成爲proj2中的一個引用)時,你可以使用proj2中的app.config。

基本上,您可以將所有配置存儲在proj2中並根據需要使用。

順便說一句,改變該凸出名稱;)

+0

我嘗試匿名什麼我張貼在這個網站:) – sooprise 2013-03-21 14:54:39

+1

當然,你是對的。我剛纔是開玩笑的。成功加載配置? – Custodio 2013-03-21 14:55:58

+0

是的,我能夠得到代碼工作,但現在有人發佈了不同類型的解決方案。 – sooprise 2013-03-21 15:01:13

0

.NET應用程序有一個配置文件。它通常具有可執行文件的名稱。 .NET不支持每個程序集的配置文件。

您應該將連接字符串從可執行文件傳遞到記錄器項目。

0

最好的選擇,你會加載PROJECT1在運行時內Project2的confing。 我會做什麼是放置配置字符串(或自定義配置部分,如果需要)在Project2 confing內。這個設置基本上只是告訴應用程序在哪裏看Project1配置。

一旦confing路徑就可以加載它:

System.Configuration.ExeConfigurationFileMap configFile = new System.Configuration.ExeConfigurationFileMap(); 
    configFile.ExeConfigFilename = "my_file.config"; 
    config = System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(configFile, System.Configuration.ConfigurationUserLevel.None); 
    settings = config.AppSettings.Settings; 

在這種情況下,我從PROJECT1訪問的AppSettings。

關於我提到的自定義配置,請參閱我的帖子之一,如果您需要更復雜的設置,這一個Custom configuration section將完成這項工作。

+0

所以這會導致兩個不同的配置文件?我開始認爲把它全部放在一個配置文件中會讓使用它們的人更容易... – sooprise 2013-03-21 15:02:26

+0

是的,如果你不想在它們之間重複設置,這個解決方案適用於多個配置文件。 – 2013-03-21 15:05:00

+0

我發現在我的項目中很簡單,只爲測試項目提供了不同的配置文件。 其餘部分集中在啓動項目的app.config中。如果你有這麼多的配置可能會遷移到數據庫是一個選項,但是那是另一個歷史。 – Custodio 2013-03-21 15:09:05

0

如果使用默認Properties.Settings(的app.config之間的差異,並設置解釋here),你有Project2中引用PROJECT1,那麼你可以做這樣的:

// in Project2: 
    string connectionstring = NamespaceOfProject1.Properties.Settings.Default.Project1ConnString; 
相關問題