Сообщение .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
У меня есть компонента Использование сборок .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
У меня есть компонента Использование сборок .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