J'ai beaucoup d'API / classes que j'ai développées à Ruby et à Python que j'aimerais utiliser dans mes applications .NET. Est-il possible d'instancier un objet rubis ou python dans C # et appeler ses méthodes? P>
Il semble que les bibliothèques comme IronPython font le contraire de cela. Signification, ils permettent à Python d'utiliser des objets .NET, mais pas la réciproque de ce qui est ce que je cherche ... Je manque quelque chose ici? P>
Des idées? P>
4 Réponses :
J'ai vu des moyens d'appeler en rubis / python de C #. Mais c'est plus facile l'inverse. P>
Si vous avez vu cela, comment cela a-t-il été fait? Dans ce cas, il n'est pas plus facile pour moi de faire l'inverse.
Si vous pouvez attendre le C # 4.0 (vous pouvez utiliser la version bêta en ce moment), elle viendra avec le mot-clé "dynamique" et vous pouvez appeler le code IRRUBY ou IRINPYTHON comme décrit ici . P>
C'est l'une des deux choses que le Dynamic Language Runtime est censé faire: tout le monde pense que le DLR est uniquement destiné aux impléments de la langue pour faciliter la mise en œuvre de langues dynamiques sur la CLI. Mais, c'est aussi pour les écrivains d'application, afin de faciliter l'hôte des langues dynamiques dans leurs applications.
Avant le DLR, chaque langue avait sa propre API d'hébergement. Maintenant, le DLR a un Spécification d'hébergement normalisée qui fonctionne la même chose pour < em> chaque em> langue et avec support pour des objets dactylographiés dynamiquement en C # 4 et VB.NET 10, il devient plus facile que jamais: p> ici Vous voyez des trucs se faire passer dans toutes les directions possibles. Le code C # appelle une méthode sur l'objet Ruby qui n'existe même pas em> et le code Ruby est itération sur un tableau .NET et imprimant son contenu sur la console. P> P> P> >
ironRuby et
Vous ne voyez pas l'inverse car il n'est généralement pas fait à l'envers. J'affirmerais que la même situation se produit avec Python / C et Jython / Java.
@Min, C et Python fonctionne dans les deux sens. En fait, mon introduction à Python l'incorporait dans une application C.