使用 .Net Framework 的 System.CodeDom 命名空间动态生成源代码并编译

本文介绍了如何利用.NET Framework的System.CodeDom命名空间动态生成源代码,并结合System.CodeDom.Compiler编译器服务进行编译。CodeDOM提供了一种与语言无关的方式来表示代码结构,可用于在运行时生成不同编程语言的源代码。示例代码展示了如何生成C#源代码文件以及如何编译成可执行程序。

关于 System.CodeDom 命名空间,MSDN 对其做了如下描述:

 

.NET Framework 中包含一个名为“代码文档对象模型”(CodeDOM) 的机制,该机制使编写源代码的程序的开发人员可以在运行时,根据表示所呈现代码的单一模型,用多种编程语言生成源代码。

为表示源代码,CodeDOM 元素相互链接以形成一个数据结构(称为 CodeDOM 图),它以某种源代码的结构为模型。

System.CodeDom 命名空间定义可表示源代码逻辑结构(与具体的编程语言无关)的类型。System.CodeDom.Compiler 命名空间定义从 CodeDOM 图生成源代码的类型,以及在受支持的语言中管理源代码编译的类型。编译器供应商或开发人员可以扩展受支持语言的集合。

当程序需要用多种语言为程序模型或者为不确定的目标语言生成源代码时,与语言无关的源代码建模很有价值。例如,如果语言的 CodeDOM 支持可用,则一些设计器将 CodeDOM 用作语言抽象接口,以用正确的编程语言生成源代码。

.NET Framework 中包含 C#、JScript 和 Visual Basic 的代码生成器和代码编译器。

 

 

1.使用 CodeDOM 代码生成器生成源代码

 

代码生成图通常包含在 CodeCompileUnit 中。若要为包含 CodeDOM 图的 CodeCompileUnit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值