using Microsoft.CSharp;
using System.CodeDom.Compiler;
using System.Reflection;
private void button1_Click(object sender, EventArgs e)
{
ICodeCompiler vCodeCompiler = new CSharpCodeProvider().CreateCompiler();
CompilerParameters vCompilerParameters = new CompilerParameters();
vCompilerParameters.GenerateExecutable = false;
vCompilerParameters.GenerateInMemory = true;
vCompilerParameters.ReferencedAssemblies.Add(GetType().Module.FullyQualifiedName);
vCompilerParameters.ReferencedAssemblies.Add("System.dll");
vCompilerParameters.ReferencedAssemblies.Add("System.Windows.Forms.dll");
string vSource =
"using " + GetType().Namespace + ";/n" +
"using System.ComponentModel;/n" +
"using System.Windows.Forms;/n" +
"public class Temp/n" +
"{/n" +
" public void Test()/n" +
" {/n" +
" new " + GetType().Name + "().Show();" +
" }/n" +
"}/n";
Console.WriteLine(typeof(Component).Module.FullyQualifiedName);
CompilerResults vCompilerResults =
vCodeCompiler.CompileAssemblyFromSource(vCompilerParameters, vSource);
if (vCompilerResults.Errors.Count > 0)
{
foreach (CompilerError vCompilerError in vCompilerResults.Errors)
{
Console.WriteLine("错误:" + vCompilerError.ErrorText);
}
return;
}
Assembly vAssembly = vCompilerResults.CompiledAssembly;
object vTemp = vAssembly.CreateInstance("Temp");
MethodInfo vTest = vTemp.GetType().GetMethod("Test");
vTest.Invoke(vTemp, null);
}
分享到:
相关推荐
如何用C#动态编译、执行代码 在开始之前,先熟悉几个类及部分属性、方法:CSharpCodeProvider、ICodeCompiler、...大致了解以上知识之后,就可以使用C#动态的编译并执行代码了,以下是一段示例程序:
一、开源项目 Javascript .NET ...示例代码: 代码如下:using Noesis.Javascript; using System; using System.Collections.Generic; namespace JsCSharp { class Program { static void Main(string
提供对C#代码生成器和代码编译器的实例的访问。如果要动态生成VB代码,可以使用VBCodeProvider。CreateCompiler():获取编译器的实例。定义用于调用源代码编译的接口或使用指定编译器的CodeDOM树。每种编译方法都...
可以直接在文本框里输入C#测试代码并执行,用于代码片段的运行测试,或通过简单地编码获取运行结果,需要.net frameword 4.0支持,原创小程序,比较简陋,需要Visual Studio 2010以上
c# 动态生成源代码并编译下载即可运行。
Microsoft Visual Studio 2010做的C# winform类的静态成员及静态方法,主要代码: public class Student { private int IDBase = 20080000; private int ID; public static int StudentNumber; public string ...
基于CodeDom 实现的字符串执行基于CodeDom 实现的字符串执行基于CodeDom 实现的字符串执行
最简单的动态页面静态化的代码C#,输入动态页面的地址,要存放的静态页面的地址,搞定
C# 静态织入
C#基础知识 静态
动态执行字符串的c#代码; 另外还实现了动态调用c++ dll的功能,供参考
VS 2010的 C#动态和静态调用C++生成的dll,可成功执行。
前几天看到一篇关于.net动态编译的文章 ...在此基础上我做了一些封装,为使调用更加简单,并增加了对动态代码调试的支持,相同代码只编译一次的支持,代码改动自动重新编译,代码引用文件的自动加载和手工加载等功能。 ...
C#代码动态编译、动态执行、动态调试[参照].pdf
在编写C#程序的时候,有时我们需要动态生成一些代码并执行。然而C#不像JavaScript有一个Eval函数,可以动态的执行代码。所有这些功能都要我们自己去完成
httpModules方式伪静态 -----C#.Net实例代码
C#动态执行与编译,实现了动态编译并执行指定类(代码)的函数的方法。
C#动态加载代码,编译,执行,提供实例源码,仅供学习参考。
可以直接在文本框里输入C#测试代码并执行,用于代码片段的运行测试,或通过简单地编码获取运行结果,需要.net frameword 4.0支持,原创小程序,比较简陋
使用一个线程,并在线程中使用webBrowser控件来获取网页源代码,只有使用了webBrowser控件,才可以让网页执行完js代码,获取真正的网页源代码。有使用线程超时设置,超时后就停止线程。