При использовании нового конструктора Xamarin.iOS он автоматически создаст ваши контроллеры, представления и т. Д., Чтобы ваш код C# выполнялся и фактически отображался на поверхности дизайна (вместо того, чтобы ждать до времени выполнения).Отметьте код, который не запускается во время разработки
Итак, если у вас есть контроллер, это будет конструктор и ViewDidLoad
.
Так скажем, у меня есть контроллер так:
class MyController
{
readonly ISomeService service;
public MyController(IntPtr handle) : base(handle)
{
service = MyIoCContainer.Get<ISomeService>();
}
}
Очевидно во время разработки, контейнер IoC будет совершенно пустой и бросить исключение.
Есть ли способ решить эту проблему с помощью дизайнера Xamarin.iOS? Возможно #if !DESIGN_TIME
или что-то в этом роде? Или есть способ, которым я мог бы заставить мой контейнер IoC возвращать макетный экземпляр всех объектов во время разработки?
Я думаю, что ваш способ тоже работает, но я думаю, что @ метод chkn является предпочтительным. Они следовали тому же шаблону от более старых дизайнеров, таких как WinForms. Однако ваш, вероятно, проще. – jonathanpeppers