【问题标题】:Dynamic type in Xamarin.iOS with Realm带有 Realm 的 Xamarin.iOS 中的动态类型
【发布时间】:2019-04-09 04:50:41
【问题描述】:

我有一个 API,其中键的值可以以 int、string 或字典的形式出现。

我使用object 关键字作为值的type,它工作正常。

但是一旦我实现了Realm 编译器给了我一个错误。

Error: Fody/RealmWeaver: MyClass.Value is a 'System.Object' which is not yet supported.

好的,所以Realm 不支持object。然后我尝试使用 dynamic 关键字作为类型。我收到以下错误。

Missing compiler required member 'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create' (CS0656)

谷歌搜索这导致我看到this 评论说动态关键字在 iOS 上是不允许的,因为 JIT 编译是不允许的

那么在这种情况下该怎么办呢?

【问题讨论】:

    标签: c# .net xamarin.ios realm


    【解决方案1】:

    Realm weaver 仅支持已知类型的子集

    • 字符串
    • 字节数组
    • 字符
    • 字节
    • Int16
    • Int32
    • Int64
    • 单人
    • 布尔值
    • 日期时间偏移
    • 以及上述的可为空的变体

    这里定义https://github.com/realm/realm-dotnet/blob/master/Weaver/RealmWeaver.Fody/ModuleWeaver.cs#L34

    所以你遇到了这个异常 https://github.com/realm/realm-dotnet/blob/master/Weaver/RealmWeaver.Fody/ModuleWeaver.cs#L481

    因此您需要将MyClass.Value 更改为已知类型之一

    【讨论】:

      猜你喜欢
      • 2012-06-01
      • 1970-01-01
      • 2016-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多