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