2009-05-03 80 views
1

我有一個小的(〜2000行代碼)類,我想從兩個java & .NET中使用。有幾種方法可以做到這一點 - 其中包括將類作爲服務包裝,使用一些interop voodoo,或者將代碼複製到C#& java。C# - > Java代碼生成器

你知道一個徹頭徹尾的現成工具,完成後者 - 需要一個簡單的C#類,沒有依賴關係,並將其轉換爲等效的java類?

回答

2

如果是小(或事實上,即使是大的),我不知道的機械翻譯工具的智慧;我從來沒有與他們很多的快樂。但是,一種選擇是在J#中編寫.NET代碼。

但我強調 - 如果是我,我會手動在兩者之間手動移植它並分開維護它們。大多數情況下,差異不是很大 - 有符號的字節,拳擊差異等。當然,代表的任何事情都需要改變 - 捕獲的變量工作方式不同,等等等。

+0

我們在J#和Java的子集中編寫代碼,它很醜,但很有用。請注意,J#不再支持(或延伸支持,不記得)。例如,Visual Studio 2008對它沒有理解力。 – ya23 2009-05-03 10:16:56

3

IKVM.NET做得很好一個jar文件並將其編譯爲託管的.NET程序集。

+0

你對此做了什麼? C#程序集 - > Java代碼? – deostroll 2015-07-15 12:24:36

0

曾經有一個COM橋接器,您可以在regasm.exe或visual studio中註冊C#程序集以便在COM中使用。

0

這不是你要求的,但我只是創建一個簡單的C#Java解釋器。

的差異不是很大,你似乎是源的作者這樣就可以避免討厭的結構是相當困難的翻譯。這樣你的翻譯會很簡單。我將從C#轉到Java,因爲C#更具表現力,您可以模擬Java中幾乎所有的C#函數。

其實cs2java似乎就是這樣做的。

+0

即使他們在語法上相似,編寫翻譯也不是那麼簡單。 Java中缺少一些功能,比如委託/事件,lambda函數和擴展方法,以及框架之間存在很多差異。翻譯所有這些並不是微不足道的。 – Spoike 2009-05-03 09:34:32

0

這是我知道的tools的列表。銳化或j2cstranslator看起來像不錯的選擇。