Net有道

紫冠道人的求道历程

导航

2004年11月17日 #

动态生成与编译(九)----CodeDOM的局限

 

CodeDOM这个东西虽然能生成大多数的程序代码,但它还是有点局限性的喽。我在写CodeDOM程序中就碰到过一些了,虽然有些特性是可以用其他方法代替的,但有些代码还是无法用CodeDOM写出来 。本来就是要写些最近在CodeDOM中碰到的问题的,但前两天在CodeProject上发现有人已经做过这样的事了http://www.codeproject.com/csharp/codedomparser.asp,虽然是两年前的文章,而且是在.NET1.0下的,但是比较的全面(有很多我还没碰到过,也没想到过,有几句还看得迷迷糊糊的),而且看来对CodeDOM来讲.NET1.0NET1.1差别不大(可能没差别,没仔细确认过)

/*下面这两个不是很清楚,Attribute targetsAttributes on accessor是什么意思呀。本来对.NET里的Attributes这东西就不是很熟悉。*/

 

PS:除了上面提到过的,在C#里的using语句也没有出现,看来在CodeDOM里这个using出的问题大了,只有引用程序集的那个using问题不大。后面在程序中我就直接用try…finally结构来代替using了。不过这是特定语言的问题,问题不大,而且有替代方法。

 

以上的都是类编写过程中碰到的问题为主,现在写的程序当然也是以上面的那些东西为多,去动态生成也主要是生成大同小异的类比较的多点。

在流程控制方面,CodeDOMwhiledo…whle循环好象无能为力,没有if…else if…else if……else这种及switch(select)这些多选择的语句。而且也没有breakcontinue这样的跳转语句,只有goto语句。一些跳转方面的可能是比较的特殊的需求了,程序要动态到这种程度也没什么的意思,但多分支选择,特别是switch这种的选择语句,来动态生成有时候还是有需要的,怎么会没有呢?

posted @ 2004-11-17 15:35 lichdr 阅读(3833) 评论(12) 编辑