簡體   English   中英

如何在.NET 3.5 Windows窗體中使用應用程序設置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM