Взаимодействие C# — Java

#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.

Ответ №6: