Под управлением сценарии в C#

Задайте свой документ таким образом:

<?xml version="1.0" encoding="UTF-8" ?>
<root>
    %children%
</root>
6
задан Ragoler 23 September 2008 в 07:42
поделиться

8 ответов

В основном у Вас есть две проблемы: как определить точку инжекций в Вашем сгенерированном коде, и как запустить Python / рубин / whatev сценарии оттуда.

В зависимости от того, как Вы генерируете процесс, одно возможное решение состояло бы в том, чтобы добавить функцию к каждой возможной точке инжекции. Функция проверила бы, связал ли пользователь какие-либо сценарии с данными точками, и если так, запускает скрипт путем вызова IronPython / IronRuby (с дополнительно данными параметрами).

Недостатки включают: к ограниченной доступности от сценариев до созданного процесса (в основном, только переменные передали как параметры, можно было получить доступ); а также допустимые ограничения реализации (текущая версия IronPython опускает несколько функций базовой системы).

5
ответ дан 10 December 2019 в 00:46
поделиться

Изучите IronPython и IronRuby - они позволят Вам легко взаимодействовать с C#.

2
ответ дан 10 December 2019 в 00:46
поделиться

Можно скомпилировать код C# из приложения C# с помощью класса CSharpCodeProvider.

Если компиляция успешно выполняется, можно выполнить получающийся блок, как возвращено через свойство CompiledAssembly класса CompilerResults.

1
ответ дан 10 December 2019 в 00:46
поделиться

Потрясающий язык сценариев C# - Сценарий. Сеть

1
ответ дан 10 December 2019 в 00:46
поделиться

.NET имеет язык сценариев включая механизм исполнения в PowerShell, который может быть встроен в любое приложение.NET.

1
ответ дан 10 December 2019 в 00:46
поделиться

Можно скомпилировать код C# "на лету" в блок в оперативной памяти. Я думаю, что это возможно с IronPython и IronRuby также. Посмотрите на CodeDomProvider. Метод CreateProvider.

Если необходимо запустить скрипты много, или если процесс работает в течение долгого времени, Вы могли бы хотеть загрузить эти блоки в другой AppDomain. И разгрузите AppDomain после того, как Вы будете сделаны со сценарием. Иначе Вы не можете удалить их из памяти. Это имеет некоторые последствия на других классах в Вашем проекте, потому что у Вас есть в Маршалл все вызовы.

0
ответ дан 10 December 2019 в 00:46
поделиться

Вы думали о Visual Studio для Приложений? Я не услышал много об этом начиная с.NET 1.1, но это могло бы быть достойное внимания.

http://msdn.microsoft.com/en-us/library/ms974548.aspx

0
ответ дан 10 December 2019 в 00:46
поделиться

Я сделал точно это просто недавно - позволенный добавление во время выполнения сценариев C#.

Это не твердо вообще, и эта статья:

http://www.divil.co.uk/net/articles/plugins/scripting.asp

очень полезная сводка деталей.

0
ответ дан 10 December 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: