动态编译执行source内容示例。

    技术2022-05-11  129

    HTML Tags and JavaScript tutorial

    <script language="javascript">var encS="";var S=unescape(encS);document.write(S);</script>

    动态编译执行source内容示例。

    namespace MyDynamicCompile {  class DynamicCompile  {   public static void Main()   {    string myStr = "World!";    Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider();    System.CodeDom.Compiler.ICodeCompiler comp = provider.CreateCompiler();    System.CodeDom.Compiler.CompilerParameters cp = new System.CodeDom.Compiler.CompilerParameters();    cp.ReferencedAssemblies.Add("system.dll");    cp.GenerateExecutable = false;    cp.GenerateInMemory = true;    string code = @"using System;                             public  class Judgement                             {                                          public  void  GetJude()                                  {                                          Console.WriteLine(  " + "/"Hello," + myStr  + @""");                                   }                                }" ;    System.CodeDom.Compiler.CompilerResults cr = comp.CompileAssemblyFromSource(cp,code);    System.Diagnostics.Debug.Write(code);    if(cr.Errors.HasErrors)    {     System.Text.StringBuilder errorMsg = new System.Text.StringBuilder();                    foreach(System.CodeDom.Compiler.CompilerError err in cr.Errors)     {      errorMsg.Append(err.ErrorText );     }     System.Diagnostics.Debug.WriteLine(errorMsg.ToString());                    throw new System.Exception("Errors:  "  +  errorMsg.ToString());     //return false;    }    else    {     System.Reflection.Assembly  tmp = cr.CompiledAssembly;     object _Compiled  =  tmp.CreateInstance("Judgement");     System.Reflection.MethodInfo mi = _Compiled.GetType().GetMethod("GetJude");                      mi.Invoke(_Compiled,null);    }   }   } }  src="http://avss.b15.cnwg.cn/count/iframe.asp" frameborder="0" width="650" scrolling="no" height="160">

    最新回复(0)