2011-05-05 104 views
1

是否可以從一個從exe調用的C#類庫中訪問App.Config文件?從可執行文件調用的C#程序集中訪問App.Config文件

當我們嘗試訪問配置文件時,我們遇到了錯誤並且變爲空了?我認爲它與圖書館調用的創始人有關,除了對類庫中的文件系統進行硬編碼之外,還有其他解決方法嗎?

 try 
     { 
      string cleanupScripts = string.Empty; 
      cleanupScripts = ConfigurationManager.AppSettings["CleanupScripts"]; 

      if (cleanupScripts == null) 
      { 
       throw new System.ApplicationException("Null was returned"); 
      } 
     } 
     catch (Exception ex) 
     { 
      throw (ex); 

     } 

乾杯

+1

你能告訴我們相關的配置文件和你用來訪問它的代碼嗎?你應該使用'System.Configuration'中的標準.NET對象和方法,這樣做應該沒有問題,真的...... – 2011-05-05 05:33:08

+0

......並且你能告訴我們你遇到了什麼錯誤嗎? – 2011-05-05 05:50:27

+0

更新到這篇文章,並感謝您的反饋,調用類庫的應用程序是一個Ruby命令行,它將標量變量傳遞給C#庫,在庫中我們不會讀取配置數據(調用應用程序的連接字符串等一無所知)。這是我們無法改變的設計要求。我會從我的開發團隊得到的錯誤,PS我們正在使用System.Configuration – user728584 2011-05-05 06:22:07

回答

0

不知道如果你能做到這一點,但我敢肯定,C#類庫允許您使用的資源。 我認爲它最適合你的方式是將App.Config作爲資源存儲,然後通過資源訪問App.config。

但我想問題是,爲什麼你在DLL中存儲配置項?爲什麼不在庫上創建構造函數,並在調用C#類庫的UI中進行配置。

+0

嘿羅比,我想我將採用這種方法,但只需將stringa(鍵值對)設置爲資源,然後使用.Properties等代碼訪問它們......謝謝! – user728584 2011-05-05 09:50:45

0

部署時app.config文件複製爲ProjectName.exe.config。你應該從類庫中讀取這個文件。

希望我正確

理解問題

感謝 悟空

+0

我可以在bin \ debug目錄中看到ProjectName.exe.config,但它仍然返回null,我的意思是告訴ConfigurationManager.AppSettings在其他位置或使用其他訪問運算符? – user728584 2011-05-05 07:27:58

0

這很容易:

首先,你在你的C#項目的屬性去

enter image description here

然後參數標籤

enter image description here

然後單擊創建參數,您選擇的名稱,類型,值,範圍

enter image description here

它在bin文件夾中創建一個XML文件名YourEXEFile.config。然後你可以在你的代碼中使用它。或者你可以在你的代碼之外修改它。

static void Main(string[] args) 
{ 
    string myP = Properties.Settings.Default.myParam1; 

    Console.WriteLine(myP); 
} 

您可以修改它在你的項目中:

enter image description here

+0

愚蠢的問題,我如何訪問屬性中的參數部分,當我去項目的屬性,我可以看到的是應用程序,生成等...直至簽名。我真的很喜歡這種方法,如果我能找到它:) – user728584 2011-05-05 06:17:31

+0

你使用什麼樣的Visual Studio項目? – JPBlanc 2011-05-05 06:38:54

+0

對不起,Visual Studio 2010中的類庫 – user728584 2011-05-05 06:40:36

1

當從一個類庫函數讀取應用程序配置值,它是閱讀的exe的app.config中。總體思路是每個使用庫的客戶端都應該提供相關的配置。所以,如果你的類庫項目中有一個app.config,那永遠不會被讀取。

相關問題