Xamarin.iOS "Попытка JIT-метода компиляции" простой класс

У меня есть приложение Xamarin.iOS. Я ссылаюсь на проект библиотеки iOS. В проекте библиотеки у меня очень простой класс.

using System;

namespace Noodle.iOS
{
    public class TestClass
    {
        string property;

        public TestClass (string property)
        {
            this.property = property;
        }

        public string Property
        {
            get
            {
                return property;
            }
        }

    }
}

При попытке создать экземпляр этого класса в AppDelegate я получил следующую ошибку.

System.ExecutionEngineException: Attempting to JIT compile method 'Noodle.iOS.TestClass:.ctor (string)' while running with --aot-only. See http://docs.xamarin.com/ios/about/limitations for more information

Я использую этот код для создания экземпляра класса в AppDelegate.

var testClass = new Noodle.iOS.TestClass("test");

Я ссылался на "ограничения", упомянутые в сообщении об ошибке, но не нашел ничего, что относится к моей настройке. Я не использую дженерики / виртуалы. Я тоже все связываю.

Любые идеи, почему я получил бы эту ошибку? Почему бы MonoTouch (или mtouch.exe) не скомпилировать AOT мой проект iOS Library, на который есть ссылка?

С другой стороны, есть ли способ отключить JIT в симуляторе iOS, чтобы вести себя как устройство?

ОБНОВИТЬ

Кажется, это связано с другими методами / классами в моем другом проекте. Кажется, что есть одно использование, которое приводит к поломке всей библиотеки. Я мог бы использовать всю библиотеку правильно, если бы я не использовал этот конкретный статический класс.

Noodle.Engine.Singleton<Noodle.TinyIoCContainer>.Instance = new Noodle.TinyIoCContainer();
// var current = Noodle.EngineContext.Current;

Код выше работает. Контейнер создается. Однако, если я раскомментирую Вторую строку, первая строка не выдаст мне эти ошибки - aot-only.

Есть идеи? Свойство "Current" должно просто возвращать мой экземпляр singleton, созданный в первой строке.

Вот файл EngineContext.cs на github, чтобы помочь определить причину.

https://github.com/theonlylawislove/Noodle/blob/master/Source/Noodle/EngineContext.cs

0 ответов

Другие вопросы по тегам