我想的是,,C# 解析 javascript 脚本,,在  js脚本里面能调用  C# 方法。1,第一个方法。
网上找了好多方法,,都不好用。。msscript.ocx  这个用的人挺多的,,我是试了能调用C#方法。。
但是用 msscript  这个,,脚本运行后,就不能控制了,,我放在单独线程里面,,停止线程也无法中止,Timeout来结束脚本也不行Timeout运行到C#里面就无效了,。而且在网上查了,,貌似同时运行多个脚本,可能会线程不安全。
                        gg = new ggg("MSScriptControl", new MSScriptControl.ScriptControlClass());
                        gg.msc.Language = "javascript";
                        gg.msc.UseSafeSubset = true;
                        gg.msc.AllowUI = false;
                        gg.msc.Timeout = Timeout;
                        gg.msc.AddObject("ms", gg, true);
2,第二个方法。
想尝试用 Microsoft.JScript 来解析脚本,但是不知道如果调用C#方法。3,目前我使用 Jurassic来解析,各方面功能都完善,还是希望用原生的来解决,,第三方的,涉及到版本兼容性问题。是3.5的,我 .NET2.0 不能用,单独引用 System.Core.dll也不行。。

解决方案 »

  1.   

    2,第二个方法。
    想尝试用 Microsoft.JScript 来解析脚本,但是不知道如何调用C#方法。

    主要是交互,,如果没交互性也没什么用了,,要 JS里面能调用 C#的类方法。
      

  2.   

    我还试过了,用 CodeRom 来解析  CS脚本,,但是 C# 是强类型的,,到处都是强制转换脚本一点也不友好。。(int)  (bool)
    脚本还是用  JS比较好点。。
                            sb.AppendLine("using System;");
                            sb.AppendLine("using System.Threading;");
                            sb.AppendLine("using System.Collections.Generic;");
                            sb.AppendLine("namespace sx");
                            sb.AppendLine("{");
                            sb.AppendLine("    public   class   api_runtime");
                            sb.AppendLine("    {");
                            sb.AppendLine("         public   void   api_runsc(Dictionary<string, Delegate> dict)");
                            sb.AppendLine("         {");
                            sb.AppendLine("                    " + cc);
                            sb.AppendLine("         }");
                            sb.AppendLine("    }");
                            sb.AppendLine("}");