zoukankan      html  css  js  c++  java
  • 在服务器执行js脚本

    javascript做为客户端脚本,实际是不能在服务器执行了,但是在.net中可以编写jscript服务器脚本来执行

    首先,引用Microsoft.JScript

    第一种方法,动态编译

     

    public class JScripta
    {
        private static readonly CodeDomProvider _provider = new Microsoft.JScript.JScriptCodeProvider();
        private static Type _evaluateType;
        private const string EVAL_SOURCE = @"package aa
    {
    public class JScript
    {
      public static function a(s)
      {
            var w='3';
        return s + '1'+w +a2(); 
      }
      public static function a2()
      {

        return 'aaaaaaaaa';
      }
    }
    }";
        public static void JScriptUtil()
        {
            CompilerParameters parameters = new CompilerParameters();
            parameters.GenerateInMemory = true;

     

            CompilerResults results = _provider.CompileAssemblyFromSource(parameters,EVAL_SOURCE);


            Assembly assembly = results.CompiledAssembly;
            _evaluateType = assembly.GetType("aa.JScript");
            object[] w = new object[] { "a" };

            object ww = _evaluateType.InvokeMember("md5", BindingFlags.InvokeMethod,
                        null, null, w);
        }

    }

    第二种方法,把.js文件编译成dll

    csc.exe C#编译器
    vbc.exe vb.net编译器
    jsc.exe JScript.Net编译器
    vjc.exe J#编译器
    cl.exe C/C++编译器

    在这里用jsc.exe

    可以做个.bat文件

    CD E:\batch\Jscript

    jsc /t:library E:\batch\Jscript\JScript.js

    pause

    CD..

    如果提示没有jsc.exe那么 把jsc.exe的路径添加到系统环境变量的path中去

    JScript.js代码如下

    public class JScript
    {
      public static function a(s)
      {
            var w='3';
        return s + '1'+w +a2(); 
      }
      public static function a2()
      {

        return "aaaaaaaaa";
      }
    }

    编译后引入dll

    object a= JScript.a("1");

  • 相关阅读:
    2019暑假集训 windy数
    2019暑假集训 数字游戏
    2019暑假集训 周年纪念晚会
    2019暑假集训 加分二叉树
    0013-求圆柱体体积
    0012-求滑动距离
    0011-绝对值函数
    0010-温度转换
    0009-乘法问题
    0008-三位数倒序问题
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/1278573.html
Copyright © 2011-2022 走看看