Rufen Sie die Ruby oder Python API in C # .NET auf

8

Ich habe viele APIs / Klassen, die ich in Ruby und Python entwickelt habe und die ich gerne in meinen .NET-Apps verwenden würde. Ist es möglich, ein Ruby- oder Python-Objekt in C # zu instanziieren und seine Methoden aufzurufen?

Es scheint, dass Bibliotheken wie IronPython das Gegenteil tun. Das heißt, sie erlauben Python, .NET-Objekte zu nutzen, aber nicht das Gegenseitige dazu, wonach ich suche ... Fehle ich hier etwas?

Irgendwelche Ideen?

    
robotshapes 05.11.2009, 22:37
quelle

4 Antworten

9

Dies ist eines der beiden Dinge, die die Dynamic Language Runtime tun soll: Jeder denkt, dass das DLR nur für Sprache ist Implementierer, um die Implementierung dynamischer Sprachen auf dem CLI zu erleichtern. Aber auch für Anwendungsentwickler ist es einfacher, dynamische Sprachen in ihren Anwendungen zu hosten.

Vor dem DLR hatte jede Sprache ihre eigene Hosting-API. Nun hat das DLR eine standardisierte Hosting-Spezifikation , die für alle Sprache und mit Unterstützung für dynamisch typisierte Objekte in C # 4 und VB.NET 10 wird es einfacher denn je:

%Vor%

Hier sehen Sie, dass Dinge in alle möglichen Richtungen herumgereicht werden. Der C # -Code ruft eine Methode für das Ruby-Objekt auf, die nicht einmal existiert und der Ruby-Code iteriert über ein .NET-Array und druckt seinen Inhalt auf die Konsole.

    
Jörg W Mittag 06.11.2009, 02:01
quelle
3

Wenn Sie auf C # 4.0 warten können (Sie können die Beta jetzt verwenden), wird es mit dem Schlüsselwort "dynamic" geliefert, und Sie können IronRuby oder IronPython-Code aufrufen, wie in hier .

    
Brian Sullivan 05.11.2009 22:48
quelle
1

Sowohl IronRuby als auch IronPython erlaubt Ihnen, Ruby und Python native Module, Funktionen und Klassen aufzurufen. Beide werden als mehr oder weniger erstklassige Sprachen in .NET unterstützt, insbesondere unter der DLR (Dynamic Language Runtime).

    
Soviut 06.11.2009 02:09
quelle
-1

Ich habe Wege gesehen, um von c # aus Ruby / Python aufzurufen. Aber es ist einfacher umgekehrt.

    
Nestor 05.11.2009 22:41
quelle

Tags und Links