Информация об изменениях

Сообщение .Net Core. Вызов манагед кода из натива от 14.05.2016 7:42

Изменено 14.05.2016 19:33 Serginio1

Начну с того, что в 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
Смысл идеи таков

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

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

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

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

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

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

Или скачать http://files.rsdn.ru/19608/%d0%a4%d0%b0%d0%b9%d0%bb%d1%8bNetObjectToIDispatch.zip
Начну с того, что в 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