[IronPython] Expose a C# function as a Python function taking a default argument

Jeff Hardy jdhardy at gmail.com
Tue Nov 20 06:48:14 PST 2007


Thanks, it worked like a charm!

-Jeff

On Nov 19, 2007 10:37 AM, Dino Viehland <dinov at exchange.microsoft.com> wrote:
> You can use either the [Optional] attribute or the [DefaultParameterValue(null)] attributes on the parameter in the C# signature to mark the parameter as being optional.  And if you're using a language that's more friendly to default/optional attributes (e.g. VB.NET) you could just use their native syntax which will generate one of those attributes.
>
> The interesting difference between these is I believe if you're typed to object and do [Optional] you get Missing.Value instead of null so you can disambiguate between the two.
>
>
> -----Original Message-----
> From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Jeff Hardy
> Sent: Sunday, November 18, 2007 12:31 PM
> To: Discussion of IronPython
> Subject: [IronPython] Expose a C# function as a Python function taking a default argument
>
> Hi all,
> I have a function declared in C#:
> void StartResponse(string status, List response_headers, Tuple exc_info);
>
> I need to pass this to a Python function, and the Python function will
> call it. Currently, the code looks like this:
> object responsesObj = engine.CallObject(callable, module, environ, new
> StartResponseDelegate(StartResponse));
>
> This works fine if all three arguments are passed. However, from the
> Python side start_response has this signature:
> def start_response(status, response_headers, exc_info=None)
>
> So my question is: How do I expose the C# function as a Python
> function with a default argument? It looks like
> Runtime.Calls.PythonFunction is what I want, but I couldn't figure out
> how to call it - I tried tracing the code and ended up in the bowels
> of the DLR.
>
> Thanks,
> Jeff
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>


More information about the Users mailing list