使用JavaScript进行自定义目的

我正在写一个raytracer作为我的完整3d引擎的一部分。 我正在计划将JavaScript用于脚本语言,而不是编写自己的脚本语言。 问题是我该如何使用它? 顺便说一句,raytracer和用户界面是用C#编写的。


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

  • JavaScript调用ac#方法
  • 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


    尽管可以使用JavaScript作为.Net应用程序的脚本,但它并不是最流行的选择。 如果你可以选择其他语言 - IronPython或LUA.Net可能是选择,你会得到更好的支持。 我最近在类似的问题中列出了几个链接:用npc方法编写npc脚本以供c#使用类执行。

    否则,JavaScript.Net(.Net框架的一部分)或其他实现,无论是明确的.Net还是使用.Net绑定,都可以用作脚本语言。

    链接地址: http://www.djcxy.com/p/66541.html

    上一篇: Using javascript for custom purposes

    下一篇: No matching overloaded function found C++ TEMPLATE