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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 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@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
users mailing list
users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to