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