2010-09-25 30 views

Répondre

1

Ceci était en partie une motivation pour ajouter le type dynamic à C# 4.0. Le plus gros problème est que les déclarations IronPython n'incluent pas les informations de type, ce qui rend l'utilisation de C# difficile. Le mot-clé dynamic ajoute la prise en charge de ces objets dynamiquement typés à C# 4.0. Voir par exemple:

Appel de fonctions/objets de C# 3.0 est un peu plus gênant, mais il est still possible. Vous devrez juste écrire quelque chose comme au lieu d'écrire simplement foo.Bar(42).

0

Je tape ceci sur mon téléphone alors pardonnez s'il vous plaît toutes les erreurs stupides. Pour utiliser l'assembly compilé, assurez-vous de compiler avec clr.CompileModules, PAS pyc.py. Puis, dans votre C#, appelez la méthode LoadAssembly sur votre objet Python ScriptEngine. Le module peut ensuite être importé en appelant la méthode ImportModule sur votre ScriptEngine. De là, si vous pouvez profiter du mot-clé dynamique, faites-le. Sinon, vous serez coincé avec des appels lourds de chaîne magique à GetVariable. Notez également que vous devrez fournir la bibliothèque standard à votre assembly Python compilé sous une forme ou une autre.