Динамический тип в Xamarin.iOS с областью

#c# #.net #xamarin.ios #realm

#c# #.net #xamarin.ios #область

Вопрос:

У меня есть 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 привел меня к этому комментарию, в котором говорится, что ключевое слово dynamic не разрешено в iOS, потому что JIT-компиляция не разрешена.

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

Ответ №1:

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

  • Строка
  • ByteArray
  • Символ
  • Байт
  • Int16
  • Int32
  • Int64
  • Одиночный
  • Двойной
  • Логическое
  • DateTimeOffset
  • И обнуляемыми вариантами вышеупомянутого

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