Net有道

紫冠道人的求道历程

导航

随笔分类 -  CodeDOM

CodeDOM的學習
贴几个CodeDOM的链接
摘要:先来个Delphi的:The CodeDOM and the Delphi for .NET IDE 通过OTA在IDE里浏览CodeDOM。作者是Borland的工程师(他的BLOG) 在A Look At CodeDOM这篇BLOG里有很不错的链接,质量很高的。 MSDN http://msdn.microsoft.com/netframework/programming/bcl... 阅读全文

posted @ 2005-03-18 16:46 lichdr 阅读(4120) 评论(1) 推荐(1) 编辑

CodeDOM浅析(下)
摘要:生成以后是编译了。在生成的时候,从GenerateCodeFromCompileUnit()这个方法开始,ICodeGenerator里面的其他几个方法都可以被调用到;而在ICodeCompiler里,接口里的方法最后都会调用到这么一个FromFileBatch()方法里来。那么看看在CodeCompiler这个类里是如何实现这个方法的: protected virtual Compil... 阅读全文

posted @ 2004-11-29 11:44 lichdr 阅读(5467) 评论(10) 推荐(0) 编辑

CodeDOM浅析(上)
摘要:CodeDOM用得差不多了,不能天天只管写代码写呀写的,闲下来之余总是要想一想它是如何来实现这样的功能的呢?就那样建立起来一个CodeDOM的类,然后就可以去生成我们希望的代码,且可以动态的去编译它。 MS的东西没有源代码,不过现在可以用Reflector这样的好工具来粗粗地探究一下里面到底是如何干的(当然如果IL过关的话,也可以直接用Ildasm来看)。这一点还真是不赖。 提到CodeD... 阅读全文

posted @ 2004-11-29 11:40 lichdr 阅读(8830) 评论(2) 推荐(2) 编辑

动态生成与编译(九)----CodeDOM的局限
摘要:CodeDOM这个东西虽然能生成大多数的程序代码,但它还是有点局限性的喽。我在写CodeDOM程序中就碰到过一些了,虽然有些特性是可以用其他方法代替的,但有些代码还是无法用CodeDOM写出来 。本来就是要写些最近在CodeDOM中碰到的问题的,但前两天在CodeProject上发现有人已经做过这样的事了http://www.codeproject.com/csharp/codedompars... 阅读全文

posted @ 2004-11-17 15:35 lichdr 阅读(5705) 评论(12) 推荐(0) 编辑

动态生成与编译(八)----动态编译
摘要:上次把实实在在的源代码生成了,不再是抽象的东西了,现在要用程序动态的来编译上次的东西。 System.CodeDOM.Compiler中的三个接口都是从CodeDomProvider得到的(上次强调过了),这次用到的接口是ICodeCompiler,所以先: CSharpCodeProvider provider = new CSharpCodeProvider... 阅读全文

posted @ 2004-11-11 14:17 lichdr 阅读(5927) 评论(4) 推荐(0) 编辑

动态生成与编译(七)----根据CodeDOM生成源代码
摘要:写着写着就已经到(七)了,前面讲了那么多,分析如此这般的CodeDOM代码会有什么对应的程序代码;什么样的程序代码CodeDOM程序应该是如何写。其实那都是纸上谈兵的事,一段CodeDOM程序写下来,经过一个个的Add后,最后到了CodeCompileUnit这个CodeDOM容器就停了,没地方可以Add了。就凭这个CodeCompileUnit是不会凭空产生出来我们要的那些代码的喽,Code... 阅读全文

posted @ 2004-11-09 13:58 lichdr 阅读(5843) 评论(8) 推荐(0) 编辑

动态生成与编译(六)――测试一下CodeDOM生成的类
摘要:这么简单的一个类,其实直接让它生成类代码看一下也就知道行不行了。但既然做就做到底,把测试用的代码也一并用CodeDOM来生成算了,而且CodeDOM里还有几个类也要随便说一下。 先看生成后的代码(直接在原namespace里新做了一个类): public class TestClass { public static void Main() { ... 阅读全文

posted @ 2004-11-05 12:01 lichdr 阅读(4005) 评论(1) 推荐(0) 编辑

动态生成与编译(五)----用CodeDOM生成一个完整的类(下)
摘要:上次把一个类的构造函数、字段、属性的写法搞定了,这次轮到事件,讲事件当然就不能不提委托,当然方法也是不少了的(类方法嘛倒是从一开始就在用了,Main()也是类里的方法)。 既然要写一个完整点的东西喽,那就索性再声明一个自己的EventArgs类,这个类基本上什么事没有,只有一个属性返回当前的时间。 public class myEventArgs : EventArg... 阅读全文

posted @ 2004-11-03 14:06 lichdr 阅读(6042) 评论(3) 推荐(4) 编辑

动态生成与编译(四)----用CodeDOM生成一个完整的类(上)
摘要:在(三)里用一个求Fibonacci数列的程序来说明CodeDOM是如何生成一些程序的基本语句的。现在写程序很少会直接写几个方法来让Main()从头调到尾的,总是要用几个类来封装封装的。 在CodeDOM里一个类的字段、属性、事件(讲到事件,委托总是逃不了的)、方法等又是如何来生成的呢?上次只讲到了类方法(CodeMemberMethod),在CodeTypeMember这个重量... 阅读全文

posted @ 2004-11-02 13:56 lichdr 阅读(11466) 评论(4) 推荐(4) 编辑

动态生成与编译(三)----写一个面向过程的程序
摘要:先讲一个简单的程序,把变量声明、赋值、if语句、for循环等讲掉,这些是程序的基本的东东,再顺便带一下异常处理。就是一个比(一)复杂一点的控制台程序而已,关于类方面的东西下次再来。 找来找去找了个Fibonacci数列的程序,这个输入输出比较的简单,而且基本流程代码都有。当然真的实际生成不会去生成这种的程序,现在主要是“借”它一用。 先看生成的程序,下面就是用CodeDOM生成的代码: ... 阅读全文

posted @ 2004-10-25 15:11 lichdr 阅读(7213) 评论(6) 推荐(1) 编辑

动态生成与编译(二)----CodeDOM的类层次结构
摘要:昨天本来已经洋洋洒洒地写了一个程序,准备直接切入正题了,但昨天写的过程中发现了解一下CodeDOM的类层次结构还是有好处,今天先写这个了,顺便讲讲基本的概念。 System.CodeDOM这个命名空间的大多数类都是从System.CodeDOM.CodeObject这个类(而它直接从System.Object而来)继承的,大头都在这里,烦的也在这里了。 System.Object... 阅读全文

posted @ 2004-10-21 13:46 lichdr 阅读(8304) 评论(2) 推荐(1) 编辑

动态生成与编译(一)----入门
摘要:以前走马观灯似的看.NET Framework SDK文档,也没怎么注意它的CodeDOM机制,很多东西一略而过,“喔,有这么回事呀”就算了,至于如何回事其实也是不甚明了。现在工作上的需要要用到这方面的东西,再仔细一看,不得了,.NET Framework的这个CodeDOM太厉害了。 .NET Framework 中包含一个名为“代码文档对象模型”(CodeDOM) 的机制,该机制使编写... 阅读全文

posted @ 2004-10-20 13:43 lichdr 阅读(11833) 评论(12) 推荐(1) 编辑