[英]How to use application settings in .NET 3.5 Windows Forms
我正在嘗試存儲System.Collection.Queue
的類型。 隊列將僅包含字符串。 問題是,當我嘗試使用它時,它始終為Null。
Settings.Default.CorrectionsDescription.Enqueue(textString);
我收到以下錯誤。
你調用的對象是空的。
我已經使StringCollection
正常工作,但是我需要一個FIFO隊列。
您如何通過“設置”或通過代碼初始化隊列? 當我嘗試時,它給出了只讀錯誤。
設置通常僅將數據存儲在非常簡單的對象或集合中(xml可序列化,甚至Dictionary <TKey,TValue>也已引起問題!)。
隊列具有特殊的語義,不太適合數據存儲。
我建議使用List <string>或StringCollection來存儲設置,並基於該集合在應用程序啟動時創建Queue 。
保存是相同的,但是順序相反-從隊列中創建列表,將其放入Settings類並保存。
更新:
標准設置機制將XML序列化用於對象持久性。
實現IEnumerable <T>的對象還必須具有方法Add(T value)是xml-serializable 。 Queue <T>沒有這種方法,因此無法成功反序列化。
MSDN :
如果滿足特定要求,則XmlSerializer可以處理以不同方式實現IEnumerable或ICollection的類。 實現IEnumerable的類必須實現采用單個參數的公共Add方法
我一直只用:
if (Settings.Default.CorrectionsDescription == null)
{
Settings.Default.CorrectionsDescription = new Queue();
}
在程序啟動時,但我也想知道更好的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.