5

I read that, for the newest Java, Javascript on Java can call or import java packages easily. In the newest .NET, can JScript.net call C# functions easily?

For details, I am asking not about compiled JScript.net code, but about non-compiled JScript.net string code which is run on the script engine.

Robert Harvey
  • 178,213
  • 47
  • 333
  • 501
seven_swodniw
  • 881
  • 3
  • 9
  • 15

2 Answers2

9

Here is an example:

1) CS file with a simple calls and method that returns a string. 2) js file that calls the CS method using eval.

// cstest.cs - compile as library

using System;
namespace MyNamespace
{
    public class Foo
    {
        public string Bar()
        {
            return "Hello JS";
        }
    }
}

// test.js - compile as exe // add a reference to cstest.dll // command line compile jsc /t:exe /r:cstest.dll test.js

import MyNamespace;

var o : JSApp = new JSApp();
o.DoEval();

class JSApp
{
    function DoEval()
    {
        var f : Foo;
        var s : String
       eval("f = new Foo;");
       eval("s = f.Bar();"); // call Foo.Bar
       print(s);
    }
};
Dmitry Savy
  • 1,067
  • 8
  • 22
0

What you need to to is to convert your JScript.NET code to C#. Something like this.

Emmanuel N
  • 7,350
  • 2
  • 26
  • 36
  • 1
    There is a new version of JScript.NET in Visual Studio 2010: http://msdn.microsoft.com/en-us/library/xkx7dfw1.aspx. I'm guessing there's a way to call C# code from JScript.NET, provided you compile your C# code into a .NET DLL and reference it from JScript.NET. – Robert Harvey Feb 27 '12 at 20:00