我有興趣爲單聲道做出貢獻,無論是文檔還是以往。作爲第一步,我下載了用於瀏覽代碼的源代碼樹。然而,我想如果有人會花足夠的時間來了解項目結構,這將有助於這裏的每個人。任何一點我可以看出項目結構在哪裏得到了很好的解釋?學習單聲道源代碼
注意:這不是問題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