此平台不支持 Xamarin.iOS 操作 Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory.CreateDynamicMethod 出现异常

2024-02-19

我正在使用 Xamarin.Forms 开发一个跨平台项目。在我的项目中,我使用 API 通过用户名和密码登录。当我尝试登录 Android 和 UWP 平台时,它运行良好。但是当我想登录我的 iOS 项目时,它会抛出一个异常:

System.PlatformNotSupportedException:不支持操作 这个平台。

我的代码的这一行抛出异常:

HttpContent content = new FormUrlEncodedContent(keyValuePairs);
HttpResponseMessage response = await httpClient.PostAsync("token", content);

这是完整的 StackTrace:

在 System.Reflection.Emit.DynamicMethod..ctor (System.String 名称, System.Type 返回类型、System.Type[] 参数类型、System.Type 所有者,System.Boolean skipVisibility) [0x00006] 中 /Library/Frameworks/Xamarin.iOS.framework/Versions/12.2.1.11/src/Xamarin.iOS/mcs/class/corlib/System.Reflection.Emit/DynamicMethod.notsupported.cs:62

在 Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory.CreateDynamicMethod (System.String 名称、System.Type returnType、System.Type[] 参数类型,System.Type 所有者)[0x00000] 中 /_/Src/Newtonsoft.Json/Utilities/DynamicReflectionDelegateFactory.cs:45

在 Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory.CreateDefaultConstructor[T] (System.Type 类型) [0x00000] 中 /_/Src/Newtonsoft.Json/Utilities/DynamicReflectionDelegateFactory.cs:244

在 Newtonsoft.Json.Serialization.DefaultContractResolver.GetDefaultCreator (System.Type 创建类型) [0x00000] 中 /_/Src/Newtonsoft.Json/Serialization/DefaultContractResolver.cs:780

在 Newtonsoft.Json.Serialization.DefaultContractResolver.InitializeContract (Newtonsoft.Json.Serialization.JsonContract 合约)[0x0008b] 中 /_/Src/Newtonsoft.Json/Serialization/DefaultContractResolver.cs:813

在 Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract (System.Type objectType) [0x00007] 中 /_/Src/Newtonsoft.Json/Serialization/DefaultContractResolver.cs:340

在 Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract (System.Type objectType) [0x0010f] 中 /_/Src/Newtonsoft.Json/Serialization/DefaultContractResolver.cs:1249

在 System.Collections.Concurrent.ConcurrentDictionary2[TKey,TValue].GetOrAdd (TKey key, System.Func2[T,TResult] valueFactory) [0x00034] 中 /Library/Frameworks/Xamarin.iOS.framework/Versions/12.2.1.11/src/Xamarin.iOS/external/corefx/src/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentDictionary.cs:1003

在 Newtonsoft.Json.Utilities.ThreadSafeStore`2[TKey,TValue].Get (TKey 键)[0x00000] 中 /_/Src/Newtonsoft.Json/Utilities/ThreadSafeStore.cs:64

在 Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract (System.Type 类型) [0x0000b] 中 /_/Src/Newtonsoft.Json/Serialization/DefaultContractResolver.cs:198

在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.GetContractSafe (System.Type 类型) [0x0000b] 中 /_/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:133

在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (Newtonsoft.Json.JsonReader 阅读器、System.Type 对象类型、 System.Boolean checkAdditionalContent) [0x0000e] 中 /_/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:143

在 Newtonsoft.Json.JsonSerializer.DeserializeInternal (Newtonsoft.Json.JsonReader 阅读器,System.Type 对象类型)[0x00046] 在 /_/Src/Newtonsoft.Json/JsonSerializer.cs:907

在 Newtonsoft.Json.JsonSerializer.反序列化(Newtonsoft.Json.JsonReader 读卡器,System.Type objectType) [0x00000] 中 /_/Src/Newtonsoft.Json/JsonSerializer.cs:886

在 Newtonsoft.Json.JsonConvert.DeserializeObject(System.String值, System.Type类型、Newtonsoft.Json.JsonSerializerSettings设置) [0x0002d] 在 /_/Src/Newtonsoft.Json/JsonConvert.cs:830

在 Newtonsoft.Json.JsonConvert.DeserializeObject[T](System.String值, Newtonsoft.Json.JsonSerializerSettings 设置)[0x00000] 中 /_/Src/Newtonsoft.Json/JsonConvert.cs:786

在 Newtonsoft.Json.JsonConvert.DeserializeObject[T](System.String 值) [0x00000] 在 /_/Src/Newtonsoft.Json/JsonConvert.cs:719

在 Restaurant.Core.DataServices.LoginDataService+d__0.MoveNext () [0x00222] 在 C:\Projects\Restaurant\Restaurant\Restaurant.Core\DataServices\LoginDataService.cs:44

--- 从先前抛出异常的位置开始的堆栈跟踪结束 ---
在 Restaurant.Core.ViewModels.Login.LoginViewModel+d.MoveNext () [0x00058] 中 C:\Projects\Restaurant\Restaurant\Restaurant.Core\ViewModels\Login\LoginViewModel.cs:78

--- 从先前抛出异常的位置开始的堆栈跟踪结束 ---
在 Restaurant.Core.Helpers.ExceptionHandler+d__3.MoveNext () [0x000f6] 中 C:\Projects\Restaurant\Restaurant\Restaurant.Core\Helpers\ExceptionHandler.cs:38

我 Google 了一下,终于发现 Xamarin.iOS 有一些限制 https://learn.microsoft.com/en-us/xamarin/ios/internals/limitations#no-dynamic-code-generation。 System.Reflection.Emit 在 Xamarin.iOS 中不可用。

我猜想 Newtonsoft.Json 或者 Xamarin 本身有问题,但我不知道如何解决这个问题。


有以下三种方法可以解决该问题:

  1. 找出到底是什么线路导致了问题,并尝试找到适合您的替代方案
  2. 尝试安装一些旧版本(或更新版本,如果可用)的 NewtonSoft Json 并查看它是否有效
  3. 将问题提交给 NewtonSoft 并等待/如果他们处理它:https://github.com/JamesNK/Newtonsoft.Json/issues https://github.com/JamesNK/Newtonsoft.Json/issues

您也可以将问题提交给 Xamarin,但显然这是他们当前的技术决定,因此您不能指望他们会认为这是紧急的,或者他们甚至愿意修复它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

此平台不支持 Xamarin.iOS 操作 Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory.CreateDynamicMethod 出现异常 的相关文章

  • IIS应用程序池回收+quartz调度

    我正在 IIS 7 5 上运行一个 Web 应用程序 它需要偶尔回收 否则内存使用情况会失控 这是我正在研究的问题 当它回收时 它实际上不会运行 直到另一个请求到来 而quartz不会运行 有没有办法让IIS在回收应用程序池后立即自动启动1
  • 添加 Nullable int 时保持 null?

    我想添加可为空的int 并保留null当所有值都是null 我想要这个结果 1 2 3 1 null 1 null null null O null 0 问题是 如果我将一个值与 null 相加 结果为 null int i1 1 int
  • 您可以从基本 Win32 控制台模板应用程序中的 C#/Winrt 组件调用(不是 WinForm/abstractions/wrappers 或使用 C++/Winrt 模板)吗?)

    我有一个现有的程序 win32 x86 控制台应用程序 需要调用托管代码 来自 Net 的 C dll The dll不暴露给 COM 但可以从 C WinRT 组件调用并由 C WinRT 控制台模板应用引用 BUT即使安装了 C Win
  • C++ 长 switch 语句还是用地图查找?

    在我的 C 应用程序中 我有一些值充当代表其他值的代码 为了翻译代码 我一直在争论使用 switch 语句还是 stl 映射 开关看起来像这样 int code int value switch code case 1 value 10 b
  • 从代码中,如何创建对存储在附加属性中的对象的属性的绑定?

    我们有一个继承的附加属性来存储一个对象 在可视化树的更下方 我们希望从代码绑定到该对象的属性 通常我们像这样构建绑定的路径部分 var someBinding new Binding Path new PropertyPath Attach
  • 是否存在指向不同类型的指针具有不同大小的平台?

    C 标准允许指向不同类型的指针具有不同的大小 例如sizeof char sizeof int 是允许的 但是 它确实要求如果将指针转换为void 然后转换回其原始类型 它必须与其原始值进行比较 因此 从逻辑上来说 sizeof void
  • Gwan C#,如何获取HTTP标头?

    我需要它来重写 url 以了解我正在处理哪个友好的 url 用于用户代理和其他东西 EDIT public class Gwan MethodImplAttribute MethodImplOptions InternalCall exte
  • C# 开源 NMEA 解析器 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 C 开源 NMEA 解析器 嗯 我自己也不熟悉 但是一些快速搜索显示了一个代码项目 htt
  • 获取 boost Spirit 语法中的当前行

    我正在尝试使用 boostspirit 获取正在解析的文件的当前行 我创建了一个语法类和结构来解析我的命令 我还想跟踪在哪一行找到命令并将其解析到我的结构中 我将 istream 文件迭代器包装在 multi pass 迭代器中 然后将其包
  • 访问 ascx 文件中的母版页控件

    我有一个母版页文件 其中包含 2 个面板控件中的 2 个菜单 我还使用控件来检查用户是否登录并获取用户类型 根据我想要显示 隐藏面板的类型 控件本身不在母版页中引用 而是通过 CMS 系统动态引用 我想在用户控件中使用findcontrol
  • 使用查询表达式对 List 进行排序

    我在使用 Linq 订购这样的结构时遇到问题 public class Person public int ID get set public List
  • 如何在三个 IEnumerable 上使用 Zip [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Linq 从 3 个集合创建项目 https stackoverflow com questions 5284315 create items from 3 collections using
  • 析构函数中的异步操作

    尝试在类析构函数中运行异步操作失败 这是代码 public class Executor public static void Main var c1 new Class1 c1 DoSomething public class Class
  • 搜索实体的所有字段

    我正在尝试在客户数据库上实现 多功能框 类型的搜索 其中单个查询应尝试匹配客户的任何属性 这是一些示例数据来说明我想要实现的目标 FirstName LastName PhoneNumber ZipCode Mary Jane 12345
  • 从BackgroundWorker线程更新图像UI属性

    在我正在编写的 WPF 应用程序中 我有一个 TransformedBitmap 属性 该属性绑定到 UI 上的 Image 对象 每当我更改此属性时 图像就会更新 因此显示在屏幕上的图像也会更新 为了防止在检索下一张图像时 UI 冻结或变
  • 在 OpenGL 中渲染纹理 1 到 1

    所以我想做的是使用 OpenGL 和 C 将纹理渲染到平面上 作为显示图像的一种方式 但是我需要确保在渲染纹理时没有对纹理进行任何处理 抗锯齿 插值 平滑 模糊等 这是 OpenGL 处理渲染纹理的默认方式吗 或者是否需要设置一些标志才能禁
  • 选择查询不适用于使用Parameters.AddWithValue 的参数

    C 中的以下查询不起作用 但我看不出问题所在 string Getquery select from user tbl where emp id emp id and birthdate birthdate cmdR Parameters
  • 如何停止无限循环?

    我正在编写一个程序 该程序将计算三角形或正方形的面积 然后提示用户是否希望计算另一个 我的代码已经运行到可以计算任一形状的面积的程度 但随后不再继续执行代码的其余部分 例如 如果选择了正方形 则计算面积 然后返回到正方形边长的提示 我假设这
  • CUDA 8 编译错误 -std=gnu++11

    我正在尝试转换一些代码以使用 CUDA 并且我认为我遇到了兼容性问题 我们使用CMake 这些是我使用的 gcc 和 CUDA 版本 gcc version gcc Ubuntu 5 4 0 6ubuntu1 16 04 5 5 4 0 2
  • 为什么匹配模板类上的部分类模板特化与没有模板匹配的另一个部分特化不明确?

    这个问题可能很难用标题中的句子来描述 但这里有一个最小的例子 include

随机推荐