Динамический тип в Xamarin.iOS с Realm - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть API, в котором значение ключа может быть в виде int, строки или словаря.

Я использовал ключевое слово object в качестве типа для значения, и оно работало нормально.

Но как только я реализовал Realm, компилятор выдал ошибку.

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

Хорошо, хорошо, object не поддерживается Realm.Затем я попытался использовать ключевое слово dynamic в качестве типа.Я получил следующую ошибку:

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

Поиск в Google привел меня к этому комментарию, в котором говорится, что динамическое ключевое слово не разрешено в iOS, потому что JIT-компиляция не разрешена .

Так что же делать в этой ситуации?

1 Ответ

0 голосов
/ 22 апреля 2019

Ткач Realm поддерживает только подмножество известных типов

  • Строка
  • ByteArray
  • Char
  • Байт
  • Int16
  • Int32
  • Int64
  • Single
  • Двойной
  • Boolean
  • DateTimeOffset
  • И варианты Nullable выше

как здесь определено 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 на один из известных типов

...