[IronPython] Need help using IronPython from C#
Dino Viehland
dinov at exchange.microsoft.com
Fri Aug 11 12:53:32 PDT 2006
What you're probably looking for is the CreateMethod method that hangs off of the PythonEngine. Using this you can do:
delegate string GetEntryString();
GetEntryString es = engine.CreateMethod<GetEntryString>(@"import RemoteAdmin
ls = RemoteAdmin.ConnectToService('localhost','LogViewer')
numEntries = ls.GetNumberOfEntries()
e = ls.GetEntry(numEntries - 1)
entryString = str(e)
return entryString");
Console.WriteLine(es());
If you really do want to get a delegate to a Python function that came from a module you might want to look at Ops.GetDelegate. If you were to create a module, execute its contents, and then get the method back out by name as an object you could pass the method to Ops.GetDelegate w/ a delegate type and create a delegate to the raw Python method that you could call from C#.
-----Original Message-----
From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Jason Ferrara
Sent: Friday, August 11, 2006 12:08 PM
To: Discussion of IronPython
Subject: [IronPython] Need help using IronPython from C#
I'd like to do the equivalent of something like...
import RemoteAdmin
ls = RemoteAdmin.ConnectToService("localhost","LogViewer")
numEntries = ls.GetNumberOfEntries()
e = ls.GetEntry(numEntries - 1)
entryString = str(e)
in C#.
So I get as far as....
PythonEngine e = new PythonEngine();
# The RemoteAdmin module is in an assembly built using IronPython.Hosting.Compiler and then referenced by the C# project ClrModule clr = (ClrModule) e.Import("clr");
clr.AddReference(typeof(RemoteAdmin).Assembly)
e.Import("RemoteAdmin");
and then I'm lost.
Is there a way to make a delegate from a method that exists in the PythonEngine environment and then call the delegate from C#?
I'm aware of the Evaluate and Execute methods of PythonEngine, but I'm looking for a more direct way to call the python methods and access python object attributes, rather than building up strings to pass to Evaluate.
Thanks
- Jason
_______________________________________________
users mailing list
users at lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
More information about the users
mailing list