Unfortunately there isn't a great way to do this. If EngineModule.GetGlobalScope were public you could create your own EM that's bound to locals (Or if engine.GetModuleScope were public).
That would let you use CreateLambdaUnscoped. It returns a ModuleBinder<TDelegate> and the ModuleBinder returns the delegate of the type you want. That lets you do: ModuleBinder<Expression> binder = Engine.CreateLambdaUnscoped<Expression>(expression); binder(engineModule)(engineModule); but because you can't bind an EM to a new set of locals you're stuck. You could call those through reflection or re-build IronPython and make them public. From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dody Gunawinata Sent: Tuesday, September 25, 2007 12:05 AM To: Discussion of IronPython Subject: Re: [IronPython] replacing engine.evaluate by CreateLambda Why not use CreateMethod instead of CreateLambda? Dody G. On 9/25/07, Christian Schmidt <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > wrote: Hello community, How can I replace the 3 parameter Evaluate-function from PythonEngine engine.Evaluate(expression, module, locals) where expression is a string, module is a EngineModule and locals is a IDictionary<string, object> by something like delegate object Expression(IDictionary<string, object> locals) Expression expr = engine.CreateLambda<Expression>(expression); ... expr(locals); I've asked the same question a few days before, but didn't get an answer so far. Is it not possible at all? Thanks for any help. Christian _______________________________________________ Users mailing list [email protected]<mailto:[email protected]> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com -- nomadlife.org<http://nomadlife.org>
_______________________________________________ Users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
