.NET 4 - Запустите код из строки - в C# / F# / Ironruby / Ironpython
Вопрос
Какие способы у меня есть в .net запускать код из строки?
Console.WriteLine(Compile("1 + 2 * 3")); // results is 7.
Какие еще у нас есть варианты?
- C# - составьте код в среде выполнения?
- Ironruby / Ironpython?
- F#?
Решение
Таким образом, динамические языки, такие как Ironruby и Ironpython, позволяют очень легко делать то, что вы хотите. Создайте двигатель сценария и выполните строку. Как это легко.
C#, это возможно, используя код DOM ... но он собирает код каждый раз в DLL. Это дорогостоящее поведение, которое может привести к росту вашего приложения в размере памяти с течением времени, если вы не делаете каких -либо сложных вещей с областями приложений. Это можно сделать, но я действительно предпочитаю использовать Ironruby или Ironpython в этом подходе. Это намного проще.
Наконец, в C# 5.0 мы ожидаем увидеть компилятор как управляемый сервис. Это означает, что вы сможете запустить Eval ("// c#code") в будущем ... но он еще не доступен.
Надеюсь, поможет!
Другие советы
Оформление NCALC. Это DLL, который вы можете включить в свое приложение, и он поддерживает несколько математических и логических операций. http://ncalc.codeplex.com/