我在我的C#項目中使用作爲JSON庫,並試圖使用它的TypeSerializer.DeserializeFromString
來反序列化文件中的字符串。使用ServiceStack的TypeSerializer進行文件反序列化
我有以下代碼:
async public static void TryLoad(Action<JsonArrayObjects> Ok,
Action<string> Fail, string key, int offset)
{
try
{
var folder = ApplicationData.Current.LocalFolder;
var stream = await folder.OpenStreamForReadAsync(key);
var result = await new StreamReader(stream).ReadToEndAsync();
Debug.WriteLine(result);
var cacheItem = TypeSerializer.DeserializeFromString<CacheItem>(result);
if (cacheItem.IsValid(offset) == true) Ok(cacheItem.Data); else Fail(key);
}
catch (Exception)
{
Fail(key);
}
}
Debug.WriteLine
這裏輸出正確的JSON字符串,但與TypeSerializer.DeserializeFromString
下一行產生一個例外:
A first chance exception of type 'System.IndexOutOfRangeException' occurred in Unknown Module.
好像TypeSerializer
得到一個空字符串。爲什麼會發生這種情況,如何解決?