используя c # как скрипт во время выполнения - PullRequest
1 голос
/ 17 марта 2011

Я хочу узнать, есть ли какая-либо библиотека в .net для написания скриптов на c #. Позвольте мне описать вас более подробно, например, у меня есть приложение. Когда я запускаю его, открывается редактор c #, конечный пользователь напишет несколько кодов c #, и когда щелкнет run, этот код должен быть оценен и dom должен быть создан после интерпретации моего кода выполнения c # во время выполнения. это краткое описание моего разума ...

Ответы [ 6 ]

4 голосов
/ 17 марта 2011

Я собрал небольшое приложение под названием SimpleDevelop , которое использует CSharpCodeProvider для выполнения того, что вы описываете. Насколько я понимаю, это (CodeDom) устарело и, как правило, не рекомендуется; тем не менее, кажется, что он отлично работает для простых сценариев.

2 голосов
/ 17 марта 2011

По сути, вы хотите использовать что-то вроде CSharpCodeProvider . Механизм представления Razor в MVC, по сути, использует это для компиляции вашего кода в исполняемый файл для запуска. Если вы хотите, чтобы ваш пользователь мог писать код, а затем интерпретировать его, начните здесь. Обратите внимание, однако, что это невероятно сложный и трудоемкий подвиг, чтобы получить право; Кроме того, связывание и динамическое выполнение чужого кода - это кошмар безопасности. Просто будь в безопасности.

1 голос
/ 17 марта 2011

Проверьте пространство имен System.CodeDom.

Эта статья содержит много полезной информации: http://www.developerfusion.com/article/4529/using-net-to-make-your-application-scriptable/2/

1 голос
/ 17 марта 2011

Вы ищете что-то вроде испытательного стенда?

Я использую LinqPad для этого.

В основном это тестовый стенд для запросов Linq, но я считаю его очень полезным для операторов C #, мини-программ и т.

0 голосов
/ 17 марта 2011

Я создал приложение, которое будет запускать скрипт на языке c # без использования Visual Studio.Он включен https://sourceforge.net/projects/csharpquickcode/

C# Quick Code

0 голосов
/ 17 марта 2011

Вы можете использовать пространство имен Compiler и компилировать код во время выполнения. Посмотрите здесь для объяснения того, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...