C#语言规范
http://www.ecma-international.org/publications/standards/Ecma-334.htm

该标准为C# 2.0的规范,为nDoc无法支持VS2005的根本原因(基本猜想).接下来希望能搞清C#2.0和1.0的区别.

不过现在先来了解nDoc的结构比较实在.
nDoc的结构对我来说比较复杂,但其核心结构名字空间只有3个:
nDoc.Core
nDoc.Core.PropertyGridUI
nDoc.Core.Reflection

先来了解nDoc.Core名字空间
AssemblySlashDoc(Collection)
AssemblySlashDoc代表一个Assembly及其对应的注释文档(XML)的文件路径(的确只包括路径),
AssemblySlashDocCollection,为AssemblySlashDoc的集合.(可以参考这个编写集合)


今天来看BaseDocumenter, BaseDocumenterConfig,BaseReflectionDocumenter.

BaseDocumenter是比较让人关心的.BaseDocumenter代表文档格式的基类,比如: JavaDoc,他们之间的继承还夹了一个类: BaseReflectionDocumenter,这个类古怪的存在于NDoc.Core.Reflection中.估计今天不能看完这3个类了.不管了,看看BaseDocumenter:
它有一个IDocumenterConfig,有2个属性(MyConfig,Config)直接和它相关.

有一个受保护的构造函数,需要传入一个叫名称的字符串.该字符串将作为CompareTo(不是虚的)的根据.
有一个DocumenterDevelopmentStatus,这个指的是该Documenter状态(Stable,alpha,beta)

有一个MainOutputFile,当然就是主输出文件了,于是就有了个察看的View方法.
编译前,得确定一下,是否能编译(CanBuild),这个过程是通过检查Project中的AssembleSlashDoc是否存在,通过字符串的方式来返回的.
编译,Build(Project project)

对于BaseDocumenter来说,主要事件就是告诉用户当前进度,
DocBuildingStep,在编译过程中,提示用户最新的进度(总体进度)和操作.
DocBuildingProgress,在编译过程中,提示用户最新的进度(当前操作).

见笑,第一篇阅读理解出炉了 : )

没时间了...
to be continue
posted on 2006-03-13 23:34  EpicBlue  阅读(267)  评论(0编辑  收藏  举报