You are right. It was the all the Operations thing what I was missing 
altogether, silly me.
Now it all make sense.
Thanks a lot.
 
El 26/09/2011, a las 19:57, Keith Rome escribió:

> If you are just trying to enumerate members of a python object, and possibly 
> invoke them, then wouldn't a LanguageContext's DynamicOperations get the job 
> done? Perhaps I am misunderstanding your objectives though.
> 
> HostingHelpers.GetLanguageContext(ScriptEngine) to get the LanguageContext, 
> and then just use the Operations property from that. This gives you 
> introspection methods for GetMemberNames() and a number of invocation 
> mechanisms. All you need is a reference to an object to inspect and the 
> language engine that owns it (or one that is compatible with it).
> 
> In my implementation of a Watches/Locals/Modules UI for a python debugger, I 
> use that procedure as the basis for routines that populate the inspector 
> grids. Basically, whenever the user reaches a breakpoint via my settrace() 
> hook, I inspect the members of all variables in the current scope and refresh 
> a visual tree (really a grid with indentation), and as they drill down into 
> those objects I just walk down one step further into the data structure. It 
> isn't the fastest thing in the world, but then again it doesn't have to be - 
> the script is effectively paused until I allow the breakpoint to resume.
> 
> 
> Keith Rome
> Senior Consultant and Architect
> MCPD-EAD, MCSD, MCDBA, MCTS-WPF, MCTS-TFS, MCTS-WSS
> Wintellect | 770.617.4016 | kr...@wintellect.com
> www.wintellect.com
> 
> 
> -----Original Message-----
> From: ironpython-users-bounces+rome=wintellect....@python.org 
> [mailto:ironpython-users-bounces+rome=wintellect....@python.org] On Behalf Of 
> Hernán Foffani
> Sent: Monday, September 26, 2011 1:36 PM
> To: ironpython-users@python.org
> Subject: Re: [Ironpython-users] instropection in an embedded engine
> 
> Thanks, I'm getting closer.
> Now I'm trying to find how to get a (new? current?) CodeContext to, for 
> instance, call DictProxy.keys(..) The public constructor of CodeContext 
> signature (a PythonDictionary and a ModuleContext) doesn't match the examples 
> I could find (ScriptScope, LanguageContext).
> 
> Does anyone know of any examples of introspection of a hosted IP scripting 
> from C#?
> Evidently there's a lot I'm missing here and would like to do the due 
> homework first.
> 
> I'm using NET 4 and don't need 2.x compatibility.
> 
> Regards,
> -Hernán
> 
> El 23/09/2011, a las 21:43, Dino Viehland escribió:
> 
>> __class__ exists on object in python and is then inherited by the 
>> other types.  When accessing a member from C# you get its view of the world 
>> which doesn't include Python object members.  To get the Python type I 
>> suggest calling DynamicHelpers.GetPythonType.
>> 
>> Sent from my Windows Phone
>> 
>> -----Original Message-----
>> From: Hernán Foffani
>> Sent: Friday, September 23, 2011 9:12 AM
>> To: ironpython-users@python.org
>> Subject: [Ironpython-users] instropection in an embedded engine
>> 
>> 
>> Having the following Python code:
>> 
>>   class Plugin:
>>     def method(self):
>>       pass
>>   plugin = Plugin()
>> 
>> and an embedded ScriptScope instance in my .NET application, the 
>> following C# works fine
>> 
>>  dynamic plugin = pythonEngine.GetVariable("plugin");
>>  var attrs = plugin.__class__.__dict__;
>> 
>> if Plugin python class was defined as an old-style class, but fails if 
>> Plugin inherits from object (__class__ non existent).
>> 
>> Under the VS debugger the dynamic object plugin shows as having three 
>> attributes .class, .dict and .slots_and_weakref (with dots in their 
>> names) but no __class__ or __dict__.
>> 
>> I found that I could do something like plugin.method.im_class.__dict__ 
>> but I'd rather stick with the common idiom.
>> 
>> Is it a known issue? Something related to the way I'm using the engine?
>> 
>> Thanks in advance,
>> -Hernán.
>> 
>> _______________________________________________
>> Ironpython-users mailing list
>> Ironpython-users@python.org
>> http://mail.python.org/mailman/listinfo/ironpython-users
>> 
> 
> _______________________________________________
> Ironpython-users mailing list
> Ironpython-users@python.org
> http://mail.python.org/mailman/listinfo/ironpython-users
> 
> 

_______________________________________________
Ironpython-users mailing list
Ironpython-users@python.org
http://mail.python.org/mailman/listinfo/ironpython-users

Reply via email to