我ServiceStack.Text
在我的 C# 项目中用作 JSON 库,我正在尝试使用它从文件中反序列化一个字符串TypeSerializer.DeserializeFromString
。
我有以下代码:
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
得到一个空字符串。为什么会发生,如何解决?