c# 执行js 动态编译

using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace webpro
{
    public class JScripta
    {
        private static readonly CodeDomProvider _provider = new Microsoft.JScript.JScriptCodeProvider();
        private static Type _evaluateType;
        private const string scriptStr = @"package fhs
            {
                    public class MyJs
                    {
                      public static function test1(paramr1)
                      {
                            var retString  =   paramr1+ '是无敌的!';
                            return retString;
                      }
  
                    }
            }";
        public static object JScriptRun(string jsMethodName,object[] testParams)
        {
            //编译的参数
            CompilerParameters parameters = new CompilerParameters();
            parameters.GenerateInMemory = true;
            CompilerResults results = _provider.CompileAssemblyFromSource(parameters, scriptStr);
            Assembly assembly = results.CompiledAssembly;

            //动态编译脚本中的内容
            _evaluateType = assembly.GetType("fhs.MyJs");

            //执行指定的方法并传参数
            object retObj = _evaluateType.InvokeMember(jsMethodName, BindingFlags.InvokeMethod,
                        null, null, testParams);

            return retObj;
        }

    }
}

时间: 2024-10-07 04:13:21

c# 执行js 动态编译的相关文章

C#执行js动态编译的方法

本文实例讲述了C#执行js动态编译的方法.分享给大家供大家参考.具体实现方法如下: 代码如下: using System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace webpro { public clas

java内存动态编译执行

1.package org.jui.core.dynamic; public class DynaCompTest { public static void main(String[] args) throws Exception { String fullName = "DynaClass"; StringBuilder src = new StringBuilder(); src.append("public class DynaClass {\n"); src

Javascript动态执行JS(new Function与eval比较)

new Function与eval可以动态执行JS,只要把拼接好的JS方法,然后以字符串的形式传入到这两个函数,可以执行,其中new Function用在模板引擎比较多. 参考:http://www.jb51.net/article/35642.htm

JS 动态加载脚本 执行回调[transfer]

JS 动态加载脚本 执行回调 关于在javascript里面加载其它的js文件的问题可能很多人都遇到过,但很多朋友可能并不知道怎么判断我们要加载的js文件是否加载完成,如果没有加载完成我们就调用文件里面的函数是不会成功的.本文讲解怎么在js中加载其它js文件并在加载完成后执行回调函数. 我们可以动态的创建 <script> 元素,然后通过更改它的 src 属性来加载脚本,但是怎么知道这个脚本文件加载完成了呢,因为我们有些函数需要在脚本加载完成生效后才能开始执行. 经过对网络上资源的搜索,我发现

使用Roslyn动态编译和执行

1. 安装nuget package 2.使用Roslyn 动态执行 var engine = newRoslyn.Scripting.CSharp.ScriptEngine(); engine.CreateSession().Execute ("System.Console.WriteLine(\"Hello , Roslyn .\");"); 3.使用Roslyn 动态编译 var engine = newRoslyn.Scripting.CSharp.Scri

JS 动态加载脚本 执行回调

JS 动态加载脚本  执行回调 关于在javascript里面加载其它的js文件的问题可能很多人都遇到过,但很多朋友可能并不知道怎么判断我们要加载的js文件是否加载完成,如果没有加载完成我们就调用文件里面的函数是不会成功的.本文讲解怎么在js中加载其它js文件并在加载完成后执行回调函数. 我们可以动态的创建 <script> 元素,然后通过更改它的 src 属性来加载脚本,但是怎么知道这个脚本文件加载完成了呢,因为我们有些函数需要在脚本加载完成生效后才能开始执行. 经过对网络上资源的搜索,我发

C#动态编译并执行代码

先来张运行时截图: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.CSharp; using System.CodeDom.Compiler; u

如何用C#动态编译、执行代码

原文:如何用C#动态编译.执行代码 在开始之前,先熟悉几个类及部分属性.方法:CSharpCodeProvider.ICodeCompiler.CompilerParameters.CompilerResults.Assembly. 一.CSharpCodeProvider 提供对C#代码生成器和代码编译器的实例的访问.如果要动态生成VB代码,可以使用VBCodeProvider. CreateCompiler():获取编译器的实例. 二.ICodeCompiler 定义用于调用源代码编译的接口

ANGULARJS 动态编译添加到dom中

在使用angularjs 时,希望通过动态构建angular模版,再通过angular进行展示. 使用 方法如下: <html ng-app="app"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script src="assets/angular.min.js">