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<http://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

Reply via email to