使用 C# 使用户脚本自己的代码与自己的应用程序交互
Make user script own code that interacts with own application using C#
我正在构建一个应用程序,您可以在其中使用 C# 和 .NET 创建和绘制图形和树。此外,您可以显示该图的一些属性,例如组件数或圆圈数等。
除了我放入应用程序中的自己的方法之外,我想让用户能够编写自己的代码来计算自己的图形属性,例如最短路径或类似的东西。然后我希望这些属性在应用程序中实现,并像我自己的属性一样显示和正确计算。
目前用户可以使用哪种语言并不重要,但 JavaScript 会更理想。
有什么办法吗?也许有任何框架可以同时解释该语言并将计算的数据传输到我的应用程序。
非常感谢您的每一个回答或提示,如果需要,我还会为您提供更多信息。
谢谢!
朱利安
Roslyn to the rescue! Microsoft has a great API to access compiler services on the fly. Here's a tutorial 用于提供应用内 C# 脚本。提醒一句,如果这不是玩具,我强烈建议您研究解析不受信任的代码所固有的安全隐患,并找到一些方法将其容器化。
堆栈语言相当高效——以 .NET 或 JVM 的底层中间语言为例。所以我使用 Forth 作为我的嵌入式脚本语言,因为我可以自己编写它,并尽可能保持它的小或简单。建议在您的本地 c# 中制作示例,然后以微小的步骤向后工作,直到它可编写脚本。穿过几条路,然后开始填充。
我正在构建一个应用程序,您可以在其中使用 C# 和 .NET 创建和绘制图形和树。此外,您可以显示该图的一些属性,例如组件数或圆圈数等。
除了我放入应用程序中的自己的方法之外,我想让用户能够编写自己的代码来计算自己的图形属性,例如最短路径或类似的东西。然后我希望这些属性在应用程序中实现,并像我自己的属性一样显示和正确计算。
目前用户可以使用哪种语言并不重要,但 JavaScript 会更理想。
有什么办法吗?也许有任何框架可以同时解释该语言并将计算的数据传输到我的应用程序。
非常感谢您的每一个回答或提示,如果需要,我还会为您提供更多信息。
谢谢!
朱利安
Roslyn to the rescue! Microsoft has a great API to access compiler services on the fly. Here's a tutorial 用于提供应用内 C# 脚本。提醒一句,如果这不是玩具,我强烈建议您研究解析不受信任的代码所固有的安全隐患,并找到一些方法将其容器化。
堆栈语言相当高效——以 .NET 或 JVM 的底层中间语言为例。所以我使用 Forth 作为我的嵌入式脚本语言,因为我可以自己编写它,并尽可能保持它的小或简单。建议在您的本地 c# 中制作示例,然后以微小的步骤向后工作,直到它可编写脚本。穿过几条路,然后开始填充。