Сообщение .Net Core. Вызов манагед кода из натива от 14.05.2016 7:42
Изменено 22.08.2016 11:12 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
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 ВК
Исходники здесь
У меня есть компонента Использование сборок .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 ВК
Исходники здесь
.Net Core. Вызов манагед кода из натива
Начну с того, что в 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
Исходники здесь
У меня есть компонента Использование сборок .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
Исходники здесь