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