Mono是否实施CLR?或者至少有些非托管内部电话?或无?

时间:2012-02-17 01:44:49

标签: .net performance mono ilspy

我们知道C#使用非托管代码,如P / Invoke或CLR实现的代码,如InternalCall。我想知道的是单声道自己实现一个完整的CLR或只是一些非托管代码或什么都没有?   我可以使用.Net Reflactor或ILSpy来查看托管程序集,但有时由于性能问题,我需要知道CLR如何实现一些非托管代码。喜欢:System.String.get_lenght()如何做?   任何人都可以回答上述问题或欢迎提供有关此问题的一些信息。感谢。

1 个答案:

答案 0 :(得分:4)

是的,mono确实实现了整个CLR,所以如果你查看它的代码,你会发现像String.get_Length()这样的方法的实现。

但Mono与Microsoft CLR的实现不同。这意味着如果你在Mono中查找String.get_Length()的代码,那么Microsoft CLR可能采用完全不同的方式来做同样的事情。

另一种选择是Shared Source Common Language Infrastructure。它来自微软,它可能与单声道的实现比Mono更相似,但它仍然不一样。最新版本对应.Net 2.0。