我该在哪里找到System.Numerics.BigInteger的源代码?

5
我需要获取带有开发者注释和合理变量名的System.Numerics.BigInteger原始源代码。 我知道如何反编译程序集,但那不是我要找的答案。 我尝试过:
  • 下载了.NET 4和4.5的源代码,但由于某种原因BigInteger未包含在内。
  • 按照MS说明进行源代码跟踪,但由于此问题与SP1有关,而且我没有在我的dev机器上回滚的选项。 我也无法访问另一台具备开发能力的机器。
我相信你们中的许多人都使用源代码跟踪来调试和/或查看BCL源代码。 如果您这样做,请将BigInteger和相关代码作为答案发布。 如果这样做会越过任何法律界限,请告诉我,以便我可以寻找替代方案。 如果您提出替代方案,请附上具体原因。

2
你的实际需求是什么?你在寻找什么? - SimpleVar
你可以将ILSpy应用于System.Numerics.dll。个人而言,我避免查看微软的参考源代码或反编译的框架代码,但如果你不在意这些,反编译是一个简单的解决方案。我总是发现反编译的.NET代码很容易阅读。 - CodesInChaos
如果不需要使用微软的代码,您可以查看Mono的实现,该实现是在MIT X11下发布的。 - CodesInChaos
3
@RaheelKhan,关于.NET可用的唯一可靠来源是http://referencesource.microsoft.com/netframework.aspx。如果你在那里找不到,那它目前就不可用。许多其他商业软件包成功地使用.NET,而不需要整个带注释的源代码。如果您提供需要的详细信息,也许有人可以帮助您。这里有一个参考源论坛:http://social.msdn.microsoft.com/Forums/en-US/refsourceserver/threads?page=1,也许那里是更好的问询地点。 - Peter Ritchie
2
http://referencesource.microsoft.com/#System.Numerics/System/Numerics/BigInteger.cs,035eb7acfa6585a0 - ta.speot.is
显示剩余12条评论
2个回答

3

这个问题之前在MSDN上已经有人问过了:BigInteger源代码

如果你没有访问私有的Microsoft源和符号服务器,就不可能通过代码注释得到它。

源代码步进是你最好的选择。我也遇到了你提到的问题,并发现RedGate源代码步进器(Reflector试用版的一部分,在虚拟机上)可以解决这个问题。

如果你没有时间自己编写,另一个选择是使用第三方库:http://www.codeproject.com/Articles/2728/C-BigInteger-Class

更新:


谢谢。你的回答和Peter Ritchie的评论是唯一两个真正回答了问题的回复。我会研究一下RedGate。 - Raheel Khan
1
http://referencesource.microsoft.com/#System.Numerics/System/Numerics/BigInteger.cs - Qwertiy
.NET Core运行时(以及.NET 5、.NET 6等)的源代码,包含有注释,可以在GitHub上获取:https://github.com/dotnet/runtime/blob/main/src/libraries/System.Runtime.Numerics/src/System/Numerics/BigInteger.cs - Bip901

1

这是来自反编译器的内容,提问者指出这并不足够。 - Tim S.
但我没有看到任何理由,因为毕竟这是源代码(只有注释被省略了,在这种情况下它们并不是真正必要的)。 - SimpleVar
我也不同意他的要求,但这就是他所要求的... - Tim S.
显然,除非你是其中一名程序员或者有访问微软电脑等资源,否则你无法获取源代码的实际源码... - SimpleVar
这就是底线,它不可用 - Jeremy Thompson
从他的话中,我理解使用反编译代码应该和原始源代码一样好。只是听起来他不太相信反编译器足够可靠,因此不想在那种情况下使用它们... - SimpleVar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接