在一个跨平台项目中,我们使用 Akavache 作为我们的缓存。目标是 .Net Standard 2.1,我们使用 6.10.20 版本。
我们只需使用以下内容进行编写:
await cache.InsertObject(userIDKey, userID);
阅读:
await cache.GetObject<Guid>(userIDKey);
它适用于Xamarin.Android,用于阅读和写作。
不幸的是,我们只能在Xamarin.iOS中写入(缓存确实包含该项目)。
当我们尝试读取它时,会出现以下异常:
此平台不支持操作。
Stacktrace:在 System.Reflection.Emit.DynamicMethod..ctor(System.String 名称,System.Reflection.MethodAttributes 属性,System.Reflection.CallingConventions callingConvention,System.Type returnType,System.Type[] parameterTypes,System.Type 所有者, System.Boolean skipVisibility) [0x00006] 在 /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/src/Xamarin.iOS/mcs/class/corlib/System.Reflection.Emit/DynamicMethod.notsupported.cs:74 \ n 在 Microsoft.Extensions.DependencyInjection.ServiceLookup.ILEmitResolverBuilder.BuildTypeNoCache (Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite callSite) [0x00038] 在 :0 \n 在 Microsoft.Extensions.DependencyInjection.ServiceLookup.ILEmitResolverBuilder.BuildType (Microsoft.Extensions. DependencyInjection.ServiceLookup.ServiceCallSite callSite) [0x00055] in :0 \n 在 Microsoft。Extensions.DependencyInjection.ServiceLookup.ILEmitResolverBuilder.Build (Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite callSite) [0x00039] 在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CompiledServiceProviderEngine.RealizeService (Microsoft.Extensions.DependencyInjection.ServiceLookup. ServiceCallSite callSite) [0x00006] in :0 \n 在 Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>n__0 (Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite callSite) [0x00000] in :0 \n 在 Microsoft.Extensions。 DependencyInjection.ServiceLookup.DynamicServiceProviderEngine+<>c__DisplayClass1_0.b__1 () [0x00000] in :0 \n 在 System.Threading.Tasks.Task`1[TResult].InnerInvoke () [0x0000f] 在 /Library/Frameworks/Xamarin.iOS。framework/Versions/Current/src/Xamarin.iOS/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Future.cs:534 \n 在 System.Threading.Tasks.Task.Execute ( ) [0x00000] 在 /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/src/Xamarin.iOS/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:第2319章
我们使用以下环境:
- 操作系统:iOS 13.5
- 设备:模拟器 11.5
- Xamarin:16.6.000.1062 (d16-6@41e1f0e)
- Xamarin.iOS 和 Xamarin.Mac SDK 13.18.2.1 (29c4ea7)
很奇怪,编写工作但同一个对象无法检索数据。
什么可能导致这种情况?