C# 学习单声道源代码

C# 学习单声道源代码,c#,mono,open-source,C#,Mono,Open Source,我有兴趣为mono贡献一些东西,无论是文档还是其他什么。作为第一步,我下载了源代码树以浏览代码。然而,我想如果有人花足够的时间来理解项目结构,这将有助于这里的每个人。有人告诉我项目结构在哪里解释得很好吗 注意:这不是问题的重复,这个问题的答案不足以满足我的期望。您应该有(subversion签出URL): 主干/libgdiplus 这是System.Drawing使用的库 主干/单声道 这就是我们所说的Mono运行时。主要包含C源代码。在此目录下,您可以找到: 数据/:不同版本(1.x、2

我有兴趣为mono贡献一些东西,无论是文档还是其他什么。作为第一步,我下载了源代码树以浏览代码。然而,我想如果有人花足够的时间来理解项目结构,这将有助于这里的每个人。有人告诉我项目结构在哪里解释得很好吗

注意:这不是问题的重复,这个问题的答案不足以满足我的期望。

您应该有(subversion签出URL):

  • 主干/libgdiplus

    这是System.Drawing使用的库

  • 主干/单声道

    这就是我们所说的Mono运行时。主要包含C源代码。在此目录下,您可以找到:

    • 数据/:不同版本(1.x、2.x等)的一些配置文件
    • msvc*/:用于构建Mono运行时的Visual Studio解决方案文件
    • libgc/:Boehm垃圾收集器源
    • mono/:mono运行时源。
      • mini/:JIT源代码
      • 元数据/:这些几乎是Mono运行时使用的所有功能(封送、线程池、套接字I/O、文件I/O、控制台I/O、应用程序域、GC、性能计数器等)。这或多或少是一个C文件
      • util:杂项功能
      • io层/:Win32 I/O仿真函数
  • 主干/mcs

    这就是C#编译器、类库、类库测试和其他工具的所在

    • class/:每个程序集一个文件夹。它们中的每一个都包含每个程序集拆分的源代码,这些程序集拆分在具有名称空间名称的目录中(例如,System/System.Configuration等等),通常还包含一个测试目录。唯一的命名例外是mscorlib,其对应的文件夹名为corlib

      例如,如果要查看System.dll程序集中System.Net.HttpWebRequest的源代码,请转到trunk/mcs/class/System/System.Net,其中应该有一个名为HttpWebRequest.cs的文件,其中包含您要查找的代码

    • mcs/:C#编译器(mcs、GMC、SMC、DMC…)的源代码

    • 工具/:这些是一组用于开发(sn、wsdl等)、文档(monodoc)等的工具。大多数工具名称与MS名称匹配
周围还有很多目录,但是你应该在这些目录中查找C和C代码。此外,我还建议使用trunk进行结帐,因为这样可以获得最新的资料来源


更新:Mono现在驻留在中,mcs已集成到Mono存储库中。

Gonzalo提供了不同模块的良好概述

由于您还提到希望对文档做出贡献,因此您还需要更多的信息

首先,文档存储在mcs/class/[assembly]/Documentation/中的XML文件中,例如。其目的是支持多种人类语言(尽管目前只研究英语),因此文档中有一个语言目录,通常是
en
。在
en
中有
ns-*.xml
文件,例如包含
系统
命名空间的文档。在
en
中还有“点名称空间”目录,这些目录中有XML文件,例如,每种类型一个

文档中的
文件/目录结构
一节也概述了这一点

找到文档后,您需要了解XML格式,文档中的
NamespaceName/TypeName.XML文件格式
部分也对该格式进行了描述。使用的XML方言是的一个变体,更改为每种类型有一个文件(而不是一个单一文件中的所有类型)。这也是的超集(见附录E.文件注释,第487页)

最后,还有向mcs/class/[assembly]/Documentation目录添加新类型/成员的问题。如果您有Mono-build,那么可以使用
docupdate
Makefile目标。这将运行相应的程序集,并更新文档目录中的相应文件


如果您有任何其他文档问题,请随时在邮件列表中询问。

非常感谢您描述目录结构,您是否知道是否有网站描述此结构?有