2010-12-03 5 views
4

Existe-t-il un moyen d'interopérer en C# et en Python?Script en C# (python)

Je sais et ont utilisé IronPython (évidemment, il est devenu vraiment doux avec le mot-clé dynamic), et il permet d'interpréter Python scripts dans une application C#.

Mais je veux que ce script Python accède aux classes et méthodes C#. Je sais, par exemple, cela peut être mis en œuvre en utilisant boost::python et C++, mais comment dois-je (si c'est possible) le faire avec C#?

Merci.

+2

IronPython * devrait * être en mesure d'utiliser des classes C# comme ils sont tous – Blam

+0

NET double possible de [Comment utiliser un DLL C# dans IronPython] (http://stackoverflow.com/questions/1200182/how-to-use-ac-dll-in-ironpython) –

Répondre

6

Eh bien, vous pouvez compiler votre code C# à une DLL à l'aide csc et use ctypes to access the DLL from your script mais si vous pouvez utiliser IronPython, alors c'est la route que j'irais avec. L'utilisation de modules C# de IronPython est aussi simple qu'un appel à clr.AddReference. Par exemple, voici un script pour faire parler votre ordinateur pour vous (pris de la IronPython Cookbook)

import clr 
clr.AddReference('System.Speech') 
from System.Speech.Synthesis import SpeechSynthesizer 

spk = SpeechSynthesizer() 
spk.Speak('Hello world!')