2011-11-16 46 views
16

我有一個枚舉,我希望在運行時從web.config中獲取它。 我開始閱讀關於構建提供者,但這似乎適用於類。 有人能指點我一個例子,或者至少讓我指向正確的方向。在運行時從web.config獲取枚舉值

現在我在web.config中有一個以逗號分隔的值列表,這不是類型安全的,並且容易出錯。

如果有另一種方法來獲得這種「動態枚舉」,我願意接受其他想法。

謝謝!

+0

檢查這些 http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/5a700783-0425-43a4-bdc3-0f85a029d3f9 http://stackoverflow.com/questions/478403/can -i-add-and-remove -enumeration-at-runtime-in-java –

+0

@NiranjanKala - 那麼還有其他選擇嗎?我只想在編譯時爲類型未知的類型安全。這甚至有可能嗎? –

+0

你的代碼中聲明瞭強類型枚舉嗎?或者你想做一切動態? –

回答

25

您可以使用ConfigurationManager和轉換價值枚舉:

<configuration> 
    <appSettings> 
    <add key="YourEnum" value="BlueSky" /> 
    </appSettings> 
</configuration> 

string configValue = ConfigurationManager.AppSettings["YourEnum"]; 
YourEnumType value = (YourEnumType)Enum.Parse(typeof(YourEnumType), configValue); 
0

如果我是你,那麼我會設計我自己的枚舉類。這樣你就可以將它序列化成XML或者在運行時建立它。它也將確保您仍然具有類型安全性。

通常,數據將存儲在類中的字典類型或鍵/值對列表中。然後你可以在配置文件中存儲一個值列表(看看如何讀取列表數據)

看看here爲了得到一些想法。