Re: неизвестно (Google):
Мы действительно сделали это, как описано.
Смотрите эту страницу для быстрого запуска, но последний сегмент кода на этой странице неверен, потому что в нем пропущен параметр "--xcode".
http://monotouch.net/Documentation/XCode
Чтобы встроить Mono-EXE / DLL в программу Objective-C, вам нужно скомпилировать исходный код с помощью SharpDevelop, а затем запустить mtouch со следующими параметрами:
/Developer/MonoTouch/usr/bin/mtouch --linksdkonly --xcode=output_dir MyMonoAssembly.exe
Это работает только с полной версией MonoTouch. Пробная версия не позволяет использовать аргумент "--xcode". Аргумент "--linksdkonly" необходим, если вы хотите, чтобы mtouch сохранял классы без ссылок в скомпилированном выводе, в противном случае он удаляет неиспользуемый код.
Затем mtouch компилирует вашу сборку в собственный ARM-код (расширение файла .s), а также генерирует шаблон XCode, который загружает Mono-Runtime и ваш код в XCode / ObjC-программу. Теперь вы можете сразу использовать этот шаблон и включить свой код Obj-C или извлечь код загрузки во время выполнения из файла "main.m" и вставить его в существующий проект XCode. Если вы используете существующий проект, вам также необходимо скопировать все файлы .exe / .dll / .s из каталога xcode-output-dir, созданного mtouch.
Теперь у вас есть Mono-Runtime и сборка, загруженные в XCode-проект. Для связи со своей сборкой вы должны использовать Mono-Embedding-API (не часть MonoTouch, а Mono). Это вызовы API в стиле C. Хорошее введение см. на этой странице .
Также может быть полезна документация Mono-Embedding-API .
В вашем Obj-C-коде теперь нужно выполнять вызовы Embedded-API. Эти шаги могут включать: получить домен приложения, получить сборку, получить образ сборки, найти класс, который вы хотите использовать, создать экземпляр объекта из этого класса, найти методы в классе, вызвать методы объекта, инкапсулировать аргументы метода в C-массивы и передать их в вызов метода, получить и извлечь возвращаемые значения метода.
Для этого есть примеры на странице embedding-api-doc.
Вы просто должны быть осторожны с потреблением памяти вашей библиотекой, так как моно среда выполнения также требует некоторой памяти.
Так что это путь от Obj-C до C #. Если вы хотите совершать вызовы из C # / Mono в вашу Obj-C-программу, вы должны использовать привязки MonoTouch, которые описаны здесь .
Вы также можете использовать чистые вызовы C-метода из API встраивания / P / Invoke.
Надеюсь, это поможет вам.