.Net Core. Вызов манагед кода из натива
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 14.05.16 07:42
Оценка: :)))
Начну с того, что в 1С есть технология Внешних компонент Native API Технология создания внешних компонент Технология создания внешних компонент которые работают как под Windows так и под Linux

У меня есть компонента Использование сборок .NET в 1С 7.x b 8.x. Создание внешних Компонент.

Суть которой оборачивание .Net объектов в Com объект с помощью создания класса, реализующего методы интерфейса IReflect

Но хотелось бы прикрутить этот аналог к Linux используя ВК Native API На просторах интернета нашел ссылки вызова управляемого кода из неуправляемого http://forums.dotnetfoundation.org/t/how-to-call-a-net-core-library-from-native-code-on-linux/1576/2

This C++ app allows to run custom C# method from compiled C# .dll on Linux and OS X using coreCLR

http://www.mono-project.com/docs/advanced/embedding/
Смысл идеи таков

На стороне .Net выполнять метод. Параметры сериализуются в Stream. Сначала идет тип, затем данные.

На стороне .Net Параметры десериализутся и вызывается метод InvokeMember нужного типа. При передаче ссылок на объекты их нужно обернуть и сохранить в списке и в натив передавать индекс в списке.

Так как параметры могут изменяться возвращаем как результат значения, так и параметры.

Таким образом можно загружать любые сборки вызывать любые методы.

Так как я не силен в С++ прошу направить на путь истинный или я могу помочь в интеграции натива и манагед

Исходный код обертки можно посмотреть здесь

Или скачать http://files.rsdn.ru/19608/%d0%a4%d0%b0%d0%b9%d0%bb%d1%8bNetObjectToIDispatch.zip

На ru.stackoverflow продублировал вопрос. Может кому будет интересно

http://ru.stackoverflow.com/questions/523386/%d0%92%d1%8b%d0%b7%d0%be%d0%b2-%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc%d0%be%d0%b3%d0%be-%d0%ba%d0%be%d0%b4%d0%b0-%d0%b8%d0%b7-%d0%bd%d0%b5%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc%d0%be%d0%b3%d0%be

Выложил статью Кроссплатформенное использование классов .Net из неуправляемого кода. Или аналог IDispatch на Linux
Исходники лежат Здесь


Выложил статьи
Разработка → Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux
Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux
Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux II
Асинхронное программирование в 1С через .Net Native ВК
1С,Linux,Excel,Word,OpenXML,Net Core

Исходники здесь
и солнце б утром не вставало, когда бы не было меня
Отредактировано 22.08.2016 11:12 Serginio1 . Предыдущая версия . Еще …
Отредактировано 09.08.2016 9:12 Serginio1 . Предыдущая версия .
Отредактировано 01.07.2016 10:29 Serginio1 . Предыдущая версия .
Отредактировано 01.07.2016 8:11 Serginio1 . Предыдущая версия .
Отредактировано 26.05.2016 12:00 Serginio1 . Предыдущая версия .
Отредактировано 16.05.2016 5:39 Serginio1 . Предыдущая версия .
Отредактировано 14.05.2016 19:33 Serginio1 . Предыдущая версия .
Отредактировано 14.05.2016 17:28 Serginio1 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.