我有兴趣为单声道做出贡献,无论是文档还是以往。作为第一步,我下载了用于浏览代码的源代码树。然而,我想如果有人会花足够的时间来了解项目结构,这将有助于这里的每个人。任何一点我可以看出项目结构在哪里得到了很好的解释?学习单声道源代码
注意:这不是问题https://stackoverflow.com/questions/1655090/mono-source-code-walkthrough-tutorial的重复,这个问题的答案不足以我的期望。
我有兴趣为单声道做出贡献,无论是文档还是以往。作为第一步,我下载了用于浏览代码的源代码树。然而,我想如果有人会花足够的时间来了解项目结构,这将有助于这里的每个人。任何一点我可以看出项目结构在哪里得到了很好的解释?学习单声道源代码
注意:这不是问题https://stackoverflow.com/questions/1655090/mono-source-code-walkthrough-tutorial的重复,这个问题的答案不足以我的期望。
你应该有checked out(颠覆结账网址here):
主干/ libgdiplus
这是System.Drawing中使用的库。
主干/单
这就是我们所说的单运行。主要包含C源代码。在该目录下你可以找到:
躯干/ MCS
这是C#的编译器,类库,类库测试和其它工具。
类/:每一个装配夹。它们中的每一个都包含每个程序集的源代码,这些程序集在名称空间名称的目录中拆分(即,System/System.Configuration等等),通常也是一个Test目录。唯一的命名异常是的mscorlib,其相应的文件夹名为corlib。
例如,如果你想看到System.Net.HttpWebRequest的源代码,这是在System.dll中组装,你去主干/ MCS /班/系统/ System.Net有shoould是一个名为HttpWebRequest.cs包含你正在寻找的代码文件。
MCS/:对于C#编译器的源(MCS,系膜细胞,平滑肌细胞,公契...)
有很多更多的目录左右,但这些都是你应该寻找C和C#代码。另外,我建议中继线用于结帐,因为您将以这种方式获得最新的资源。
更新:单现居github和MCS已经融入了单库。
的Gonzalo提供的不同模块的一个很好的概述。
既然你也提到希望有助于文档,你会想一些更多的信息。首先,将文档存储在mcs/class/[assembly]/Documentation/内的XML文件中,例如, mcs/class/corlib/Documentation。目的是支持多种人类语言(尽管目前只有英文正在制作中),因此在文档是一个语言目录,通常是en
。在en
之内有ns-*.xml
文件,例如, mcs/class/corlib/Documentation/en/ns-System.xml包含System
命名空间的文档。同样在en
之内的是“虚线名称空间”目录,其中包括XML文件,每个类型一个,例如mcs/class/corlib/Documentation/en/System.Collections.Generic/IEnumerable`1.xml。
这也概述的文档内,在FILE/DIRECTORY STRUCTURE
部分。
一旦你找到的文件,你需要知道的XML格式,这也是文档中描述,在NamespaceName/TypeName.xml File Format
部分。使用的XML方言是ECMA 335XML documentation的变体,更改为每个类型具有一个文件(而不是单个单一文件中的所有类型)。这也是C# XML documentation的超集(参见,第487页)。
最后,还有一个将新类型/成员添加到mcs/class/[assembly]/Documentation目录的问题。如果您构建了Mono,则可以使用doc-update
Makefile目标。这将通过mdoc(1)运行相应的程序集并更新文档目录中的相应文件。
如果您有任何其他文件有任何疑问,请不要犹豫,问mono-docs-list邮件列表上。
非常感谢您描述目录结构,您是否知道是否有一个网站描述这个? – markmnl 2015-01-21 00:38:31
有https://github.com/mono/mono/blob/master/README.md – Gonzalo 2015-01-21 09:00:24