Can you please open a bug for this on the DLR site (<a href="http://www.codeplex.com/dlr">http://www.codeplex.com/dlr</a>)? There's a few methods that basically have code looking like this:<br><br>switch (parameters.Length) {<br>
case 0: // blah<br> case 1: // blah<br> case 2: // blah<br> default:<br> throw new NotImplementedException();<br>}<br><br>and these clearly need to be cleaned up. I'm pretty sure there's a workaround for this, but a quick scan through the source code doesn't reveal anything obvious to me :(. One possibility is to get "Checker" from the scope -- it may just give you a delegate you can call directly. <br>
<br><br><div class="gmail_quote">On Sun, Mar 15, 2009 at 9:35 AM, Igor Elyas <span dir="ltr"><<a href="mailto:igor_elyas@hotmail.com">igor_elyas@hotmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div style="padding-right: 10px; padding-left: 10px; padding-top: 15px;" name="Compose message area">
<div><font face="Calibri">Hello</font></div>
<div><font face="Calibri"></font> </div>
<div><font face="Calibri">This sample code throws error on Python object
initialization:</font></div>
<div><font face="Calibri"></font> </div>
<div><font face="Calibri">
var engine =
Python.CreateEngine();<br>
var Ops =
engine.CreateOperations();<br>
engine.Runtime.LoadAssembly(typeof(Decimal).Assembly);<br>
var src
=<br>
@"<br>class Checker:<br> def __init__(self, one, two,
three=''):<br> self.one = one<br> self.two =
two<br> self.tree = three<br> def
Call(self):<br> return self.one + self.two +
self.tree<br>";</font></div>
<div><font face="Calibri"></font> </div>
<div><font face="Calibri">
var cs = engine.CreateScriptSourceFromString(src,
SourceCodeKind.Statements).Compile();<br>
cs.Execute();<br>
var tclass =
cs.DefaultScope.GetVariable("Checker");<br>
object obj = cs.Engine.Operations.Call(tclass,"one","two","three");// throw
NotImplementedException</font></div>
<div><font face="Calibri"></font> </div>
<div><font face="Calibri">
Console.WriteLine(obj);</font></div>
<div><font face="Calibri"></font> </div>
<div><font face="Calibri">But if I use only 2 parameter in
initialize/constructor such as :</font></div>
<div><font face="Calibri"></font> </div>
<div><font face="Calibri"> object
obj = cs.Engine.Operations.Call(tclass,"one","two");</font></div>
<div><font face="Calibri"></font> </div>
<div><font face="Calibri">, than all works fine. </font></div>
<div><font face="Calibri"></font> </div>
<div><font face="Calibri">What wrong ?</font></div>
<div><font face="Calibri"></font> </div>
<div><font face="Calibri">Best regards</font></div>
<div><font face="Calibri">Igor Elyas</font></div></div>
<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>
<br></blockquote></div><br>