I am currently porting a .NET codebase in MonoTouch and I'm currently working on a method that receives an Expression<T>
. I'm trying to compile it, and then dynamically invoke it.
Here's what I did:
// Here's an example of what I could receive
Expression<Action<int>> expression = (a => Console.WriteLine (a * 2));
// And here's what I'm trying to do to invoke it
expression.Compile().DynamicInvoke(6);
This works fine in the iOS Simulator, the result "12" is printed in my console. But then I tried it on an iPad, and I received the following exception.
Object reference not set to an instance of an object
at System.Linq.jvm.Runner.CreateDelegate ()
at System.Linq.Expressions.LambdaExpression.Compile ()
at System.Linq.Expressions.Expression`1[System.Action`1[System.Int32]].Compile ()
at TestSolution2.AppDelegate.FinishedLaunching (MonoTouch.UIKit.UIApplication app, MonoTouch.Foundation.NSDictionary options)
What am I doing wrong and how could I make it work?