MonoTouch中 JSON.Net 的奇怪例外
本文关键字:JSON Net MonoTouch | 更新日期: 2023-09-27 18:36:23
我在这里收到与帖子类似的错误。
我正在像他一样在后台线程上解析带有 JSON.NET 的 JSON。 它偶尔会失败,并在 Array.Copy
中出现错误。
下面是一个堆栈跟踪:
System.NullReferenceException: Object reference not set to an instance of an object
at System.Array.Copy (System.Array sourceArray, Int32 sourceIndex, System.Array destinationArray, Int32 destinationIndex, Int32 length) [0x00104] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Array.cs:979
at System.Collections.ArrayList.CopyTo (Int32 index, System.Array array, Int32 arrayIndex, Int32 count) [0x0002d] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Collections/ArrayList.cs:3064
at System.Collections.ArrayList.CopyTo (System.Array array, Int32 arrayIndex) [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Collections/ArrayList.cs:3046
at System.MonoCustomAttrs.GetCustomAttributes (ICustomAttributeProvider obj, System.Type attributeType, Boolean inherit) [0x0026c] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/MonoCustomAttrs.cs:259
at System.MonoType.GetCustomAttributes (System.Type attributeType, Boolean inherit) [0x00011] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/MonoType.cs:582
at Newtonsoft.Json.Utilities.ReflectionUtils.GetAttributes[JsonConverterAttribute] (ICustomAttributeProvider attributeProvider, Boolean inherit) [0x00000] in <filename unknown>:0
at Newtonsoft.Json.Utilities.ReflectionUtils.GetAttribute[JsonConverterAttribute] (ICustomAttributeProvider attributeProvider, Boolean inherit) [0x00000] in <filename unknown>:0
... Continues ...
以下是 JSON.Net 中的违规代码:
#if !(NETFX_CORE)
public static T[] GetAttributes<T>(ICustomAttributeProvider attributeProvider, bool inherit) where T : Attribute
{
ValidationUtils.ArgumentNotNull(attributeProvider, "attributeProvider");
object provider;
#if !PORTABLE
provider = attributeProvider;
#else
... omitted junk ...
if (provider is Type)
return (T[])((Type)provider).GetCustomAttributes(typeof(T), inherit);
我猜GetCustomAttributes
返回空值。 Xamarin的任何人都知道这个问题吗? 新闻组的那个人说他把这项工作放在主线程上并修复了它(但我不确定我是否要这样做)。
这是一个
已知的错误。
它在 5.3.3 alpha 版本中得到了修复。