Last night we ate at the palace kitchen, why? Because Don Box recommended it to us! And very good it was too, we enjoyed a nice bottle of west coast red wine, which even my French friend Eric thought was good.

 

Anyway when our small party met him he was in the middle of a discussion with another Microsoft guy about xaml. They were talking about the possibility of using xaml to generate in memory only assemblies, of course while this is fun it does raise all sort of security issues, so Don suggest that you could send the xaml to an indigo service and sign with the propitiate ws-* feature.

 

This idea interested me, not the security implications, but the idea of using send xaml to indigo service because this sounds like a way to send a lambda function over a web service. It got me wondering about would happen if you wrote a service contact like this:

 

[ServiceContract]

interface ILambdas

{

         [OperationContract]

         void Action(Action lambda);

}

 

I haven’t tried this, but I’m pretty sure it wouldn’t work.

 

This also made me think of another way to achieve something similar. Because of the LINQ project they have added a feature to the C# compiler which will compile lambdas to data if the delegate is wrapped in the Expression<T> class. This data could then be sent over the wire and interpreted on the other side. Again I haven’t tried this yet, but I think are will be problems serialising the data structure.

 

But I think either way could be made to work with a little bit of hackery.