Net有道

紫冠道人的求道历程

导航

<2008年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

与我联系

搜索

 

常用链接

留言簿(21)

我参与的团队

随笔分类

随笔档案

文章分类

文章档案

Program

程序之外的生活

我的阅读BLOG

积分与排名

最新评论

阅读排行榜

评论排行榜

最新评论

共2页: 1 2 下一页 
@vivisimo
没有这种功能,反正以前微软只提供了一个没有任何实现的空的接口在那。
不知新版本后有什么改进。
请问要编一个对C#语法程序的词法分析器,codeDom中有没有什么方法和类封装了这样的功能,可以被直接使用的?或者C#中有没有其他这样的类或方法?词法分析程序中要提取程序的单词,并对单词的种类进行识别,以及程序中声明了什么类,变量;每个对象又是什么类型等等。谢谢!
...........
@BillySir

Parse是个问题,写个Parse器,还不如直接修改source方便,就当是字符串操作吧。
re: 贴几个CodeDOM的链接 BillySir 2007-12-03 18:21  
以前知道CodeDOM大概是作什么用的,今天一口气看完楼主的《动态生成与编译》系列,《CodeDOM浅析》系列和这篇,对CodeDOM算是有了个系统的了解。看起文章来不太费事,但写出来就难十倍了,十分佩服楼主。
上面回复的太快,“个性”应作“修改”,抱歉。
Snippets就是为了弥补CodeDOM的不足而产生的,可以说用它无所不能,但却失去了DOM的精神,所以楼主说“不算是用CodeDOM的正道”。
我需要从code转到CodeDOM,即Parse方法,楼主所说有文件可以直接编译,但是不是忽略了DOM可以为对代码有个性的这样的需求提供一个结构化的对象集,我就是需要用代码来修改代码,不知道我说的清楚没有,由于没有Parse方法,本来我写好一大段code期望可以Parse后供其他代码修改,现在只能手工一行行翻译成DOM,真是苦差。
我对“CodeCompile unit does not have space for using directives or ns members, so they are placed now into first default NS ”的理解,
CodeCompile单元没有地方直接写"using"或namesapce成员,所以它们现在被放到第一个定义的namespace里面。
前面的"using"好理解,但“namesapce成员”如何理解呢?
深入浅出,继续拜读。看CodeDOM能不能在Code、DOM和IL三者之间互转,我目前遇到的问题是如何从Code转为DOM,不是人工地转,是要类似Parse的方法。
都不知道在写什么,看不明白。
re: 序列化Hashtable lg 2007-11-15 11:04  
好,本人也遇到了同样的问题,哥们分析的真透彻啊!
re: 会议签到系统项目总结目录 zdleek 2007-08-08 16:54  
mark
re: RFID会议签到系统总结(二十二)――系统中的模式 自由、创新、研究、探索…… 2007-08-08 07:53  
鼓励楼主
^_^不错
re: 会议签到系统项目总结目录 巫云 2007-08-07 15:38  
路过,看看。
re: 会议签到系统项目总结目录 MYOOP 2007-08-07 12:19  
好久没看到这么好的东西了。顶!!!!!!!!!!!!!1
re: CodeDOM浅析(下) lichdr 2007-08-07 10:05  
@Gavin
在.net 1.1时时是没有控制的,在.net2.0有没有我不太清楚,自己可以去查一下。

一般来说那个东西放那也没什么不好的,我不但不去掉,而且还要加上一大段呢。
re: CodeDOM浅析(下)[未登录] Gavin 2007-08-06 19:18  
谁来告诉我 生成出来的头注释如何去掉?
或是COMDOM类提供有相关属性可以控制!
QQ:240101561
@Jeffrey Zhao
这样啊,试了一下,果是如此,以前没仔细看生成的代码。
好文章。
ElseOnClosing的意思是如果为true则:
if
{
} else
否则就是
if
{
}
else
re: 动态生成与编译(一)----入门 Anders.Zhao 2007-05-03 09:45  
好文章,受教了.
re: 动态生成与编译(九)----CodeDOM的局限 上善若水 2007-04-12 16:53  
while、do…whle循环是支持的.
re: 五、平面图 45 2007-04-02 19:30  
54
new CodePrimitiveExpression(null)
呵呵
re: CodeDOM浅析(下) main 2006-08-06 14:23  
comdedom全部完了,老大能不能介绍介绍这玩意到底哪些地方需要呢?
很好的文章~!谢了
re: ASP.NET 2.0 下的条件编译 flysnow 2006-06-29 20:47  
多谢了,我试一下
re: ASP.NET 2.0 下的条件编译 lichdr 2006-06-26 14:10  
@flysnow

应该还是compilerOptions这个地方,compilerOptions="/unsafe" 看看
re: ASP.NET 2.0 下的条件编译 main 2006-06-26 13:16  
@flysnow
好象是在项目属性里面配置吧 :)
re: ASP.NET 2.0 下的条件编译 flysnow 2006-06-24 14:28  
有一个问题想请教, ASP.NET 2.0 如何使用非安全代码。
同样是因为没有地方设置项目属性了
re: 序列化Hashtable lichdr 2006-05-10 14:52  
见上一条
re: 序列化Hashtable 思无邪 2006-05-10 13:15  
WriteStartElement(@"ArrayOfAnyType", @"");

for (int ia = 0; ia < a.Count; ia++) {

Write1_Object(@"anyType", @"", ((System.Object)a[ia]), true, false);

}

WriteEndElement();

这是怎么看到的?
我也遇到了序列化Hashtable的问题
re: CodeDOM浅析(下) lichdr 2006-04-21 11:33  
IDE的代码生成是用模板的。
。。\Microsoft Visual Studio .NET 2003\VC#\VC#Wizards目录下有一堆模板可以看看。
re: CodeDOM浅析(上) lichdr 2006-04-21 11:25  
你要的是dom的元素的定位吗。codecom好象没有这种的功能,而且好象这种功能的需求也不是很多。

codedom的用处不能只是定位在code这一层上。用他生成代码只是一个小小的功能,一般情况下,如果只是简单地生成代码,无论是效率还是可维护性上,都不如自己用writer直接写。如此,生成代码的查找与插入对于codedom不是很重要。
re: CodeDOM浅析(上) leejee99 2006-04-21 10:01  
请教一个问题,在codedom里面能不能实现生成代码的查找和插入呢
re: 序列化Hashtable kafa321 2006-04-18 17:35  
谢谢,很有用的文章。
问个问题,怎样才能看到生成的临时code呢?谢谢!
re: CodeDOM浅析(下) tianyamoon 2006-04-13 11:11  
请教个问题.net在拖放控件出来的时候会自动生成些代码。这些代码是怎么生成出来的啊?我目前用CodeDom类已经能够生成代码了,但是我想把这个功能做到控件里,比如在拖一个UserControl出来的时候,在源代码里加入自己定义好的一些代码或者运算。
很深的层次 , 我有时也有过类似的感觉 
re: 一点小技巧 Wu.Country@侠缘 2005-12-28 16:26  
呵呵,,,这个是早就知道了,可是,有时候一不小心就KILL了一行代码,后来又不得不Ctrl+Z,而且还会使clip board里的代码没了。(谁叫CVXZ这这个兄弟们靠的太近了。呵呵。。。),其实要看个人习惯。。。
用CodeSnippetStatement基本不算是用CodeDOM的正道,特别是大量的使用CodeSnippetStatement
可以用CodeSnippetStatement生成很多语句,不过似乎对变量的类型声明上有一点点限制。
re: 动态生成与编译(一)----入门 lichdr 2005-10-28 17:33  
to lee
数据类型的问题吧
int num = Console.Read();
在其中输入的NUM值并不是NUM的值
请问为什么在C#中输入数字会错误,应该用什么语句解决的
re: CodeDOM浅析(下) lichdr 2005-09-15 16:04  
CODEDOM是干什么用的,MSDN上就有的啦.
装个.NET SDK,就可以.

动态生成CS文件只是一个小小的方面,它的作用比之要强大得多,如果只是动态生成CS代码用不着这个东西的.

至于你说的动态生成控件,事件.不是很清楚你的场景.不会是要动态的写个自定义控件吧.

应该就是在画面上动态的画一些框框(控件类已经有了),框框上有一些事件之类的(动态生成菜单?),这个用不着什么CODEDOM.
如果是一个Solution中的.cs文件的话,可以用CodeDom的read的方法,用这个dte.Solution.Open(SolutionPath)试试看.

共2页: 1 2 下一页