Мы знаем, что C# использует неуправляемый код, например, код P/Invoke или CLR, такой как InternalCall. То, что я хочу знать, это mono, он сам реализует полную CLR или просто неуправляемый код или ничего? Я могу использовать .Net Reflactor или ILSpy для просмотра управляемой сборки, но несколько раз из-за проблем с производительностью. Мне нужно знать, как CLR реализует некоторый неуправляемый код. Как: Как работает System.String.get_lenght()? Любой может ответить на вопросы выше, или информация об этом приветствуется. Благодарю.Моно реализует CLR? Или, по крайней мере, некоторые неуправляемые InternalCall? Или ничего?
2
A
ответ
4
Да, моно реализует всю CLR, поэтому, если вы посмотрите на его код, вы найдете реализацию таких методов, как String.get_Length()
.
Но Mono - это другая реализация, чем Microsoft CLR. Это означает, что если вы посмотрите код для String.get_Length()
в Mono, тогда Microsoft CLR может иметь совершенно другой способ сделать то же самое.
Другой вариант - Shared Source Common Language Infrastructure. Это от Microsoft и, вероятно, больше похоже на их реализацию CLR, чем на Mono, но это все равно не то же самое. И самая новая доступная версия соответствует .Net 2.0.
Он реализует CLR. Просмотр кода не является проблемой, Mono - Open Source. –
@ Ханс: Я получил моно-код. Можно ли спросить, в какую директорию я должен смотреть? – chenwq
Да, рефлектор работает на моноблоках, они представляют собой один и тот же двоичный формат (что и есть вся идея). – IanNorton