我有一個枚舉,我希望在運行時從web.config中獲取它。 我開始閱讀關於構建提供者,但這似乎適用於類。 有人能指點我一個例子,或者至少讓我指向正確的方向。在運行時從web.config獲取枚舉值
現在我在web.config中有一個以逗號分隔的值列表,這不是類型安全的,並且容易出錯。
如果有另一種方法來獲得這種「動態枚舉」,我願意接受其他想法。
謝謝!
我有一個枚舉,我希望在運行時從web.config中獲取它。 我開始閱讀關於構建提供者,但這似乎適用於類。 有人能指點我一個例子,或者至少讓我指向正確的方向。在運行時從web.config獲取枚舉值
現在我在web.config中有一個以逗號分隔的值列表,這不是類型安全的,並且容易出錯。
如果有另一種方法來獲得這種「動態枚舉」,我願意接受其他想法。
謝謝!
您可以使用ConfigurationManager和轉換價值枚舉:
<configuration>
<appSettings>
<add key="YourEnum" value="BlueSky" />
</appSettings>
</configuration>
string configValue = ConfigurationManager.AppSettings["YourEnum"];
YourEnumType value = (YourEnumType)Enum.Parse(typeof(YourEnumType), configValue);
如果我是你,那麼我會設計我自己的枚舉類。這樣你就可以將它序列化成XML或者在運行時建立它。它也將確保您仍然具有類型安全性。
通常,數據將存儲在類中的字典類型或鍵/值對列表中。然後你可以在配置文件中存儲一個值列表(看看如何讀取列表數據)
看看here爲了得到一些想法。
檢查這些 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 –
@NiranjanKala - 那麼還有其他選擇嗎?我只想在編譯時爲類型未知的類型安全。這甚至有可能嗎? –
你的代碼中聲明瞭強類型枚舉嗎?或者你想做一切動態? –