1

What ways do I have in .net to run code from string?

Console.WriteLine(Compile("1 + 2 * 3"));    // results is 7.

What other options do we have?

  • C# - Compile the code on runtime?
  • IronRuby / IronPython?
  • F#?

2 Answers 2

2

So, the dynamic languages like IronRuby and IronPython make it very easy to do what you want. Create a script engine and execute the string. Easy as that.

C#, it is possible, using the Code DOM... but it it compiles the code every time into a DLL. This is a costly behavior and can cause your app to grow in memory size over time if you don't do some tricky stuff with App Domains. It CAN be done, but I really prefer using IronRuby or IronPython over this approach. It is much more simple.

Finally, in C# 5.0, we are expecting to see the compiler as a managed service. This means you will be able to run eval("//c#code") in the future... but it is not available yet.

Hope it helps!

Sign up to request clarification or add additional context in comments.

1 Comment

You say it's very easy to create an Eval function using IronPython.
0

Checkout NCalc. It's a dll you can include in your application and it supports multiple math and logic operations. http://ncalc.codeplex.com/

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.