Well I am either suffering from severe user error, or it is not in the suggested locations. The best I could find was Microsoft.Scripting.Actions.Dynamic. It implements IDynamicObject. It does not have the aforementioned TryGetMember function to override, but does have a GetMember function to override.
On Tue, Apr 14, 2009 at 2:31 PM, Dino Viehland <[email protected]> wrote: > I think it might be just “Dynamic” in 2.0. > > > > From: [email protected] > [mailto:[email protected]] On Behalf Of Curt Hagenlocher > Sent: Tuesday, April 14, 2009 11:05 AM > To: Discussion of IronPython > Subject: Re: [IronPython] **kwargs and __getattr__ handling in csharp > functions and classes? > > > > It should be Microsoft.Scripting.DynamicObject in 2.0. > > On Tue, Apr 14, 2009 at 11:02 AM, Alex News <[email protected]> wrote: > > Current IronPython = 2.01? I have Microsoft.Scripting.Core > referenced, and can't find DynamicObject. There is an > Microsoft.Scripting.Actions.IDynamicObject, and a > Microsoft.Scripting.Runtime.IOldDynamicObject. I'm sure I'm missing > something very basic. > > We are using .net 2.0.50727 SP1 > > > > On Tue, Apr 14, 2009 at 12:12 PM, Curt Hagenlocher <[email protected]> > wrote: >> In current versions of IronPython, DynamicObject is in >> Microsoft.Scripting.Core as Microsoft.Scripting.DynamicObject. In .NET >> 4.0 >> System.Core, the same class will be called System.Dynamic.DynamicObject. >> (I >> just noticed this naming discrepancy today, and I think we should probably >> move it to at least Microsoft.Dynamic for the 2.6 release.) >> >> On Tue, Apr 14, 2009 at 8:31 AM, Alex News <[email protected]> wrote: >>> >>> Much appreciated, I will give that a try. In what namespace is >>> DynamicObject declared? (I assume the required assemblies are already >>> referenced if I'm pulling in IronPython). >>> >>> Thanks again, >>> Alex >>> >>> >>> On Tue, Apr 14, 2009 at 11:16 AM, Dino Viehland <[email protected]> >>> wrote: >>> > For kwargs you need to decorate the function w/ a ParamDictionary >>> > attribute such as: >>> > >>> > public void __init__(CodeContext/*!*/ context, object o, >>> > [ParamDictionary] IAttributesCollection kwArgs) >>> > >>> > For __getattr__ IronPython will recognize a special name >>> > "GetBoundMember" method such as: >>> > >>> > using System; >>> > using System.Runtime.CompilerServices; >>> > >>> > public class Foo { >>> > [SpecialName] >>> > public object GetBoundMember (string name) { >>> > return name; >>> > } >>> > } >>> > >>> > >>> > You can also do "GetCustomMember" which is like __getattribute__. But >>> > for this one what you really want to do is inherit directly from the >>> > DynamicObject class and override TryGetMember. Then it'll work not >>> > only w/ >>> > Python but w/ other DLR based languages as well (e.g. C#, VB.NET, >>> > IronRuby, >>> > etc...). >>> > >>> > >>> >> -----Original Message----- >>> >> From: [email protected] [mailto:users- >>> >> [email protected]] On Behalf Of Alex News >>> >> Sent: Tuesday, April 14, 2009 7:32 AM >>> >> To: [email protected] >>> >> Subject: [IronPython] **kwargs and __getattr__ handling in csharp >>> >> functions and classes? >>> >> >>> >> I would like to write some functions and classes in csharp that >>> >> interact nicely python. I would like to write a function that can >>> >> respond to keyword arguments, and a class that can dynamically resolve >>> >> __getattr__. >>> >> >>> >> For the function I tried creating a function that takes a >>> >> IronPython.Runtime.PythonDictionary, but did not work. For a class I >>> >> tried creating a function that have a method __getattr__, but that >>> >> failed too. >>> >> >>> >> I see there is a IronPython.Runtime.PythonFunction and some other >>> >> interesting classes in the Runtime, but it is not apparent exactly how >>> >> I could use them. >>> >> >>> >> I can, luckily, fudge much of what I want to do by creating small >>> >> python classes and functions in python to proxy the values to >>> >> underlying csharp classes. However thing would be cleaner if I could >>> >> do it directly in csharp. >>> >> >>> >> Thanks in advance for any suggestions. >>> >> >>> >> Alex >>> >> _______________________________________________ >>> >> Users mailing list >>> >> [email protected] >>> >> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >>> > >>> > _______________________________________________ >>> > Users mailing list >>> > [email protected] >>> > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >>> > >>> _______________________________________________ >>> Users mailing list >>> [email protected] >>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >> >> >> _______________________________________________ >> Users mailing list >> [email protected] >> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >> >> > _______________________________________________ > Users mailing list > [email protected] > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > > > _______________________________________________ > Users mailing list > [email protected] > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > _______________________________________________ Users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
