2009-06-30 6 views
0

Je suis en train de répliquer this example of calling IronPython le code de VB.net. J'ai téléchargé et installé IronPython et créé une application de console VB.net. J'ai ajouté des références à tous les fichiers DLL dans le dossier d'installation IronPython:Essayer d'appeler IronPython de VB.net - « Nom « PythonEngine » est pas déclarée. »

  • IronPython
  • IronPython.Modules
  • IronPythonTest
  • Microsoft.Scripting.ExtensionAttribute
  • Microsoft.Scripting
  • Microsoft. Scripting.Core

Et j'ai e est le code source:

Option Explicit On 
Option Strict On 

Imports Microsoft.Scripting.Hosting 
Imports Microsoft.Scripting 
Imports IronPython.Hosting 
Imports IronPython.Runtime.Types 

Module Module1 
    Public Class HelloWorldVB 
     Public Overridable Function HelloWorld(ByVal name As String) As String 
      Return String.Format("Hello '{0}' from Visual Basic", name) 
     End Function 
    End Class 

    Sub Main() 
     Dim helloWorld As New HelloWorldVB() 
     Console.WriteLine(helloWorld.HelloWorld("Maurice")) 

     Dim runtime As ScriptRuntime = PythonEngine.CurrentEngine.Runtime 
     Dim scope As ScriptScope = Runtime.ExecuteFile("HelloWorld.py") 
     Dim pythonType As PythonType = scope.GetVariable(Of PythonType)("HelloWorldIronPython") 
     helloWorld = CType(Runtime.Operations.Call(pythonType), HelloWorldVB) 
     Console.WriteLine(helloWorld.HelloWorld("Maurice")) 

     Console.ReadLine() 
    End Sub 
End Module 

Je reçois l'erreur "Nom 'PythonEngine' n'est pas déclaré."

Je ne peux pas sembler trouver PythonEngine quand je recherche la ObjectBrowser.

est l'exemple de la date ou dois-je une erreur?

Répondre

0

Les choses semblent avoir changé.

Je n'ai pas travaillé sur IronPython & l'ai téléchargé maintenant.
J'ai essayé concernant votre code avec ce qui est à l'intérieur IronPython.DLL

  • Ajouter référence à IronPython.dll
  • Ajouter une instruction pour les importations - "Les importations IronPython.Hosting".

Dim scriptEngine as Python.CreateEngine()
Dim scope As ScriptScope = scriptEngine.ExecuteFile("myfile.py")

Je suppose que reste de votre code devrait fonctionner tel qu'il est.
Chargez le Ironpython.dll dans le réflecteur & vous serez en mesure de voir les types/méthodes/propriétés.

Espérons que ça aide.