Using javascript for custom purposes

I am writing a raytracer as a part of my complete 3d engine. I am planning on using javascript for the scripting language instead of writing my own. The question is how can I use it? Btw the raytracer and the UI are written in C#.


This shows the two-way interaction between Javascript and c#.

  • Javascript calls ac# method
  • C# gets the result of an expression in 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);
        }
    }
    

    There are many standalone implementations of JavaScript that you may be able to leverage for this purpose:

    Here is a link to the stackoverflow info page on JavaScript which lists at the top many of these implementations: https://stackoverflow.com/tags/javascript/info


    While it is possible to use JavaScript as scripting for .Net application it is not most popular choice. If you can pick other language - IronPython or LUA.Net may be choices you'll get better support. I listed several links in similar question recently: Write npc scripts to be executed by c# using class with npc methods.

    Otherwise JavaScript.Net (part of .Net framework) or other implementations either explicitly .Net or with .Net bindings will work as scripting language.

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

    上一篇: 具有优先级的等式(表达式)解析器?

    下一篇: 使用JavaScript进行自定义目的