C# · 12月 22, 2021

在C#中运行脚本

我想在我的应用程序中运行 javascript / Python / Ruby.

我有一个应用程序,根据用户的定义自动创建进程.该过程在C#中生成.我想让高级用户在预定义的位置注入脚本.这些脚本应该从C#进程运行.
例如,创建的进程将具有一些活动,并且在中间应该运行脚本,然后该进程像以前一样继续.
是否有从C#运行这些脚本的机制?

解决方法 基本上,您有两个问题:如何在生成的代码中定义注入点,以及如何从那里运行python / ruby​​ / whatev脚本.

根据您生成过程的方式,一种可能的解决方案是为每个可能的注入点添加一个函数.该函数将检查用户是否已将任何脚本与给定点相关联,如果是,则通过调用IronPython/IronRuby(带有可选的给定参数)来运行脚本.

缺点包括:从脚本到创建过程的可访问性有限(基本上,只能访问作为参数传递的变量);以及实现限制(IronPython的当前版本省略了几个基本的系统功能).