Библиотека IoC совместима с MonoTouch? - PullRequest
15 голосов
/ 12 апреля 2010

Все еще знакомимся с ограничениями MonoTouch. Есть ли библиотека IoC / DI, которую можно использовать с MonoTouch. Что-то вроде Ninject в идеале?

Ответы [ 6 ]

16 голосов
/ 12 апреля 2010
4 голосов
/ 13 апреля 2010

Я прошел этот процесс оценки и обнаружил, что Funq - хорошая чистая реализация, которая дала мне достаточно сил, чтобы делать то, что я хотел, без чрезмерных усложнений (или перетаскивание - это огромные зависимости).Это красиво и чисто, и поддерживает отложенную инициализацию объектов с помощью лямбда-выражений.

Я оценил 5 или 6 различных контейнеров специально для использования с MonoTouch.

http://funq.codeplex.com/

2 голосов
/ 26 февраля 2012

посмотрите на TikoContainer . Довольно прост в использовании

1 голос
/ 29 октября 2010

Контейнер OpenNETCF IoC теперь также поддерживает MonoTouch.

0 голосов
/ 30 июля 2013

Я выпустил Stiletto , IoC, который работает на всех платформах .NET, включая Xamarin и MonoTouch. Он позволяет вам определять ваши зависимости, главным образом, с помощью атрибутов, и позволяет обойти ограничения на отражение во время выполнения и общие экземпляры, выполняя свои действия во время компиляции.

EDIT

Мне придется обновить документы, но инструмент предварительной компиляции не работает с текущими инструментами сборки в Xamarin Studio. Для предварительной компиляции Stiletto требуется xbuild, который поддерживается для Xamarin.Android, но не для Xamarin.iOS! К сожалению, это означает, что мой ответ в основном неверен - то есть, если вы не хотите писать приложения для iOS в Visual Studio, что я и делал! Извиняюсь. Удалит этот ответ через несколько дней.

0 голосов
/ 26 января 2011

Хотя я бы упомянул Spring.Net , мы широко используем оригинальную версию [Java] во всех наших приложениях.

Spring [на Java, по крайней мере] имеет много. много [необязательных] модулей. Я не пробовал .Net-версию сам, но мне интересно узнать, как она сравнивается.

Приветствия

Rich

P.S. Spring.Net имеет лицензию Apache, поэтому его можно использовать в коммерческих проектах с закрытым исходным кодом (например, iOS / iPhone и т. Д.)

...