将 javascript 用于自定义目的

IT技术 c# javascript 3d raytracing
2021-03-08 14:44:45

我正在编写一个光线追踪器作为我完整 3d 引擎的一部分。我计划使用 javascript 作为脚本语言,而不是自己编写。问题是我该如何使用它?顺便说一句,光线追踪器和 UI 是用 C# 编写的。

3个回答

这显示了 Javascript 和 c# 之间的双向交互。

  1. Javascript调用ac#方法
  2. C#获取Javascript中表达式的结果

——

Type scriptType = Type.GetTypeFromCLSID(Guid.Parse("0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC"));

dynamic obj = Activator.CreateInstance(scriptType, false);
obj.Language = "javascript";
obj.AddObject("MyClass",new JSAccessibleClass());

obj.Eval("MyClass.MsgBox('Hello World')"); //<--1
var result = obj.Eval("3+5"); //<--2


[ComVisible(true)]
public class JSAccessibleClass
{
    public void MsgBox(string s)
    {
        MessageBox.Show(s);
    }
}

您可以为此目的利用许多独立的 JavaScript 实现:

这是 JavaScript 上的 stackoverflow 信息页面的链接,其中列出了许多这些实现的顶部:https : //stackoverflow.com/tags/javascript/info

我很抱歉,但链接将如何帮助
2021-04-28 14:44:45
@Belos 它在页面顶部列出了许多独立的实现。犀牛、V8等
2021-05-12 14:44:45

虽然可以使用 JavaScript 作为 .Net 应用程序的脚本,但它并不是最流行的选择。如果您可以选择其他语言 - IronPython 或 LUA.Net 可能是您的选择,您将获得更好的支持。我最近在类似问题中列出了几个链接:Write npc scripts to be execute by c# using class with npc methods

否则 JavaScript.Net(.Net 框架的一部分)或其他明确的 .Net 或带有 .Net 绑定的实现将作为脚本语言工作。