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");

  • 相关阅读:
    leetcode 70 Climbing Stairs
    leetcode 203 Remove Linked List Elements
    【HMM】
    【设计总结】
    【docker】导出导入容器
    【设计工具】样机图
    【设计细节】apple sound
    【产品分析】盒马生鲜 套路
    【喂到嘴经济】这个词有点意思
    【需求分类】KANO模型
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/1278573.html
Copyright © 2011-2022 走看看