#c# #java #interop
Вопрос:
Можете ли вы дать мне несколько советов по взаимодействию кода C# и кода Java? Давайте определим взаимодействие как нечто простое: разрешите (из кода Java) создание экземпляра и вызов метода класса, определенного в C#, и, возможно, наоборот.
Возможно ли это вообще изначально? (т. Е. Без какого-либо механизма интерфейса прокси/скелета)
И, наконец, какие прокси-механизмы можно использовать? (т. е. Поддерживаются обеими языковыми областями)
Комментарии:
1. создание класса, определенного в другом формате байтового кода, теперь просто? :/
Ответ №1:
Я использовал IKVM для успешного выполнения этой задачи.
Ответ №2:
Я нашел здесь очень многообещающую статью о проекте CodeProject.
Выдержка из введения к статье:
Предлагаемое решение покажет, как две структуры могут сосуществовать в одном процессе и легко взаимодействовать друг с другом.
В этой статье описывается высокопроизводительное решение для взаимодействия между платформой Java и платформой .NET Framework. Предлагаемое решение не заменяет виртуальную машину Java или среду выполнения .NET Framework, вместо этого ваша JVM или .NET размещаются в противоположной среде выполнения, что гарантирует сохранение оптимизаций виртуальных машин для конкретных поставщиков.
Ответ №3:
Не знаю, что нужно сделать на .СЕТЕВАЯ сторона (я не специалист по .NET), но Java предоставляет платформу JNI для взаимодействия с собственными библиотеками.
Начните с Википедии, затем перейдите по ссылкам…
Ответ №4:
Я являюсь автором jni4net, межпроцессного моста с открытым исходным кодом между JVM и CLR. Он построен поверх JNI и PInvoke. Код на C/C не требуется. Я надеюсь, что это вам поможет.
Ответ №5:
Существует несколько сторонних продуктов, которые могут взаимодействовать с .NET-Java изначально. J-Integra-это тот, с которым я больше всего знаком (я не работаю на них и не имею к ним никакого экономического интереса).
Если вас устраивают прокси-серверы и тому подобное, у вас есть несколько вариантов, таких как SOAP/веб-сервисы или CORBA.