1
我想回答this問題和想法我會看看Array
源代碼的內部,看看它是如何實現的。因此,我查看了CreateInstance
方法的in .NET source code,發現它調用了一個外部方法,其主體是分號並在別處實現。這裏是什麼樣子:如何查找.NET的extern源代碼?
private unsafe static extern Array
InternalCreate(void* elementType,int rank,int *pLengths,int *pLowerBounds);
問:
如何找到其中對於上述外部方法的實現?
一個小記錄,那些鏈接是爲.NET Core運行時。完整.NET框架使用的運行時可能與'dotnet/coreclr'回購中顯示的代碼不同,例如,可能在http://referencesource.microsoft中使用CLR中的本機類型.com /那不在覈心CLR中(不是我所知道的)。一個可能的解決方法是,使用https://source.dot.net/代替執行初始瀏覽,以便看到.NET Core的外部依賴關係,而不是完整的.NET框架。 –
@ScottChamberlain感謝您的注意 - 我甚至沒有意識到這是我在看的.NET Core Runtime。你能否詳細說明你的解決方法?如果我想將解決方法放在我的答案中,它會採取什麼措施? – CodingYoshi
沒關係,他們爲CLR的完整版本和核心版本維護相同的代碼庫。只需一堆#ifdefs即可關閉功能。這可能永遠不會是真的,coreclr可能會隨着時間推移發生分歧,但現在已經足夠了。 –