.NET 4 - Запустите код из строки - в C# / F# / Ironruby / Ironpython

StackOverflow https://stackoverflow.com/questions/2965597

Вопрос

Какие способы у меня есть в .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/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top