1
其遲到和完全可能我錯過了一些明顯的東西,但它是什麼?用XmlSerializer序列化一個簡單的數組
我想創建一個支持屬性,它揭示了一個int數組作爲序列化(然後用於建立一個隊列)。
我敢肯定,這是對的,但吸氣總是返回一個空字符串,即使存在在那裏的值(而不是它應該永遠返回一個空字符串
這裏是我的代碼:
readonly Lazy<XmlSerializer> _queueSerializer = new Lazy<XmlSerializer>(() => new XmlSerializer(typeof(int[])));
[StringLength(1000)]
public string _MostRecentPlayers
{
get
{
var stream = new MemoryStream();
_queueSerializer.Value.Serialize(stream, _mostRecentPlayers.ToArray());
return new StreamReader(stream).ReadToEnd();
}
set
{
if (value.IsEmpty())
{
_mostRecentPlayers.Clear();
return;
}
MemoryStream stream = new MemoryStream(Encoding.ASCII.GetBytes(value));
var tempQueue = _queueSerializer.Value.Deserialize(stream) as int[];
_mostRecentPlayers.Clear();
tempQueue.ForEach(_mostRecentPlayers.Enqueue);
}
}
readonly Queue<int> _mostRecentPlayers = new Queue<int>(_mostRecentAmountTracked);
我剛剛在其他地方發現了一個使用StringWriter的提示。我如何指定它使用ASCII碼? –
@George - 如果它必須是ASCII,那麼首先要注意的是,你真的需要明確地調出一個XmlWriter,否則編碼是錯誤的。我會添加一個例子。 –
@George看到新的編輯 –