2011-11-05 63 views

回答

8

庫中的類一般不應直接讀取web.config並在構造函數中進行設置。

但是,在某些情況下,庫可以直接讀取web.config。對於您可以定義一個custom configuration section或使用WebConfigurationManager.AppSettings

您需要添加引用System.Web程序集,你需要包括您要使用配置管理器文件中的命名空間System.Web.Configuration。

+0

請訪問項目的類這些設置,您可以寫一些代碼,因爲我從你的鏈接得到的代碼,但仍WebconfigurationManager不是在工作室 –

+0

@Muhammad的情報顯示 - 你能對此有何評論解釋一下? <<通常庫中的一個類不應直接讀取web.config並在構造函數中進行設置。 >>爲什麼是這樣?我在架構上認爲這是好的,因爲類庫是在Web應用程序主機的上下文中加載的。 – Howiecamp

+0

如果你單元測試你的類,你將不會有一個web.config來餵它,庫也通常是可重用的實用程序,不應該綁定到他們運行的平臺或上下文,除非你有一個特定的庫這隻適用於基於Web的應用程序,在這種情況下,您可以定義自己的配置部分,因爲配置屬於應用程序而不是庫。 –

0

將您的類庫配置設置移至web.config。

1

如果您可以將該類從類庫中移走,但如果您不能或者您不想這樣做,那麼您可以使用System.Configuration。

1)添加對System.Configuration的引用。

2)使用ConfigurationManager代替WebConfigurationManager;代碼將幾乎相同,只需使用ConfigurationManager替換WebConfigurationManager即可。

0

我有這個相同的問題,我假設你想使用ConfigurationManager來訪問你的配置文件中的一些屬性。

另一種方法是將設置文件添加到項目中。這是我在我的項目中所做的:

  1. 右鍵單擊項目名稱,轉到菜單上的「屬性」鏈接。
  2. 點擊左邊標籤上的設置鏈接
  3. 如果你還沒有生成一個VS會給你一個鏈接來創建一個。
  4. 一旦你創建了一個,你可以爲你需要的屬性添加鍵值對。
  5. VS將在項目中包含一個settings.settings文件,該文件將包含在設置文件中已添加的屬性(你應該看到他們在Settings.Designer.cs假設你使用C#)
  6. 然後,您可以通過做[ProjectNamespace].Properties.Settigns.Default.[PropertyName]