private static void TraceErrorMessage(CompiledCodeSnippet compiledCode) { Trace.TraceError(compiledCode.Errors[0].ErrorText); if (Context.VerboseTrace) { Trace.TraceError(compiledCode.Errors[0].ErrorNumber); } }
private static object InvokeCompiledResult(CompiledCodeSnippet code) { var results = code.Results; Assembly assm = results.CompiledAssembly; tempAss.Add(assm); //assm.PermissionSet.AddPermission(new FileIOPermission(FileIOPermissionAccess.NoAccess, "c:\\")); Type target = assm.GetType("Wrapper"); object obj = Activator.CreateInstance(target, null); MethodInfo method = target.GetMethod("Eval"); return method.Invoke(obj, null); //var d = AppDomain.CreateDomain("sfgfdgfdg"); //System.Runtime.InteropServices.RegistrationServices reg = new System.Runtime.InteropServices.RegistrationServices(); //reg.RegisterAssembly(assm, System.Runtime.InteropServices.AssemblyRegistrationFlags.None); //d.SetData("ass", assm); //d.AssemblyResolve += new ResolveEventHandler(d_AssemblyResolve); //d.DefineDynamicAssembly(assm.GetName(),System.Reflection.Emit.AssemblyBuilderAccess.RunAndCollect); //d.Load(assm.FullName); ///object obj1= d.CreateInstance(assm.FullName, "Wrapper"); //object obj1 = d.CreateInstanceAndUnwrap(, "Wrapper"); //MethodInfo method1 = target.GetMethod("Eval"); //XDomain domain = new XDomain(); //domain.BuildCode("2+2"); //return domain.Run("2+2"); //return ""; //return method1.Invoke(obj, null); //CrossAppDomainDelegate del = new CrossAppDomainDelegate(delegate() { method.Invoke(obj,null); }); //d.DoCallBack(del); //return 1; }