如何用C#动态编译应用程序来执行自定义代码

本文介绍了如何在C#中利用Microsoft.Csharp命名空间的Compiler类进行动态编译。通过读取源代码文件,配置输出文件、引用类库、参数设置等,实现了在程序运行时编译和执行自定义代码的功能。详细步骤包括:读取程序文件列表、读取文件内容、配置输出文件名、配置引用类库、设置编译属性以及执行编译操作。
摘要由CSDN通过智能技术生成

大家都知道,在ASP.NET中利用CodeBehind技术编写好的文件必须先通过编译,然后才能被执行。我们一般是在VS.NET中或者命令行下进行编译,那么现在的问题就是在程序中进行编译,也就是自己通过做好的规则动态生成一些程序源文件、然后对其进行编译。查看.Net Framework中提供的类库,发现了Microsoft.Csharp这个命名空间,其中有一个类Compiler。要调用这个类库必须先在引用中添加D:/WINNT/Microsoft.NET/Framework/v1.0.3705/cscompmgd.dll这个文件,这是我机器上的路径,各位根据自己机器所在路径设置吧。

 

仔细研究Compiler这个类:不需要初始化,直接可使用Compile方法,其中包含了5个参数。

string[] sourceTexts 源代码数组 其中每一个值包含一个文件中的源码

string[] sourceTextNames 源文件名数组 其中每一个值包含了一个文件名和上面的源代码数组中的值一一对应。

string target 输出的文件名

string[] imports 引用类库数组 也就是我们在VS.net中引用的那些类库的文件路径,一般都是dll文件,其中一个值表示一个引用文件。

IDictionary options 参数设置,实际上这也是一个数组,可以包含多个参数,具体的参数我在下面的部分会讲到。

 

实际这个Compile这个方法要求我们输入这些条件:

1、源代码——这个是必须的,没有源代码没法编译,那么源代码要求我们从程序文件中读取出来。

2、源文件的名称,和读取出的源代码一一对应。

3、编译输出的文件名,也可不填

4、引用的类库文件,如System.dll,System.data.dll这些都是经常会用到的。

5、其他参数设置

 

第一步:创建一个类及调用方法

首先我们创建一个Class

using System;

using System.IO;

using System.Text;

using Microsoft.CSharp;

 

namespace MyTest

{

private S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值