我在这里看到了一个以前的 SO Question讨论了一个类似的(相同的?)问题,但是那里没有可以满足我的问题的答案。
我的环境:
MonoDevelop 3.0.3.2 安装UUID:????????? 运行: 单声道 2.10.9(压缩包) GTK 2.24.10 GTK# (2.12.0.0) 包版本:210090011 未安装适用于 Android 的 Mono 苹果开发者工具: Xcode 4.3.3 (1178) 构建 4E3002 单点触控:5.2.12 构建信息: 发行编号:30003002 Git修订:7bf6ac0ca43c1b12703176ad9933c3484c05c84c-dirty 构建日期:2012-06-16 04:36:10+0000 Xamarin 插件:62ad7268d38c2ece7e00dc32960bd3bdab8fec38 操作系统: Mac OS X 10.7.4 达尔文 NEWTON.local 11.4.0 达尔文内核版本 11.4.0 2012 年 4 月 9 日星期一 19:32:15 PDT 根:xnu-1699.26.8~1/RELEASE_X86_64 x86_64
我的代码(Ping 和 PingResponse 是我自己的 ServiceModel 库中的 DTO):
Ping request = new Ping { LoginInfo = new IMDSSWebService_SS.ServiceModel.ClientLoginInfo { UserName="guest", Password="guest", ClientPlatform="iOS", ClientVersion="1.5", InstanceUID="uid1"} };
var response = _appDel.ServiceClient.Send<IMDSSWebService_SS.ServiceModel.PingResponse>(request);
ServiceStack 库:
ServiceStack.Common.Monotouch.dll (built from git src)
ServiceStack.Interfaces.Monotouch.dll (built from git src)
ServiceStack.Text.Monotouch (built from git src)
例外:
System.ExecutionEngineException 已被抛出 在使用 --aot-only 运行时尝试 JIT 编译方法“ServiceStack.Text.Json.JsonReader`1:GetParseFn ()”。 System.ExecutionEngineException:在使用 --aot-only 运行时尝试 JIT 编译方法“ServiceStack.Text.Json.JsonReader`1:GetParseFn ()”。 在 ServiceStack.Text.Json.JsonReader.GetParseFn (System.Type 类型) [0x00000] in :0 在 ServiceStack.Text.Json.JsonTypeSerializer.GetParseFn (System.Type 类型) [0x00000] in :0 在 ServiceStack.Text.Common.TypeAccessor.Create(ITypeSerializer 序列化程序,ServiceStack.Text.TypeConfig typeConfig,System.Reflection.PropertyInfo propertyInfo)[0x00000] 中:0 在 ServiceStack.Text.Common.DeserializeType`1[ServiceStack.Text.Json.JsonTypeSerializer].GetParseMethod (ServiceStack.Text.TypeConfig typeConfig) [0x00000] in :0 在 ServiceStack.Text.Common.JsReader`1[ServiceStack.Text.Json.JsonTypeSerializer].GetParseFn[PingResponse] () [0x00000] in :0 在 ServiceStack.Text.Json.JsonReader`1[IMDSSWebService_SS.ServiceModel.PingResponse]..cctor () [0x00000] in :0
我确实尝试调用 JsConfig.RegisterForAot(),但这并没有改变任何东西。我还尝试了 Link SDK Only、Link All、Link None 的各种排列方式,但都失败了,要么出现上述异常,要么根本没有构建,见下文。
模拟器/调试 - 工作正常 模拟器/发布 - 工作正常 iPhone/调试 - 上面的异常 iPhone/Release - 甚至不构建。(将创建一个单独的 SO 问题)