2012-02-17 3 views
2

Мы знаем, что C# использует неуправляемый код, например, код P/Invoke или CLR, такой как InternalCall. То, что я хочу знать, это mono, он сам реализует полную CLR или просто неуправляемый код или ничего? Я могу использовать .Net Reflactor или ILSpy для просмотра управляемой сборки, но несколько раз из-за проблем с производительностью. Мне нужно знать, как CLR реализует некоторый неуправляемый код. Как: Как работает System.String.get_lenght()? Любой может ответить на вопросы выше, или информация об этом приветствуется. Благодарю.Моно реализует CLR? Или, по крайней мере, некоторые неуправляемые InternalCall? Или ничего?

+4

Он реализует CLR. Просмотр кода не является проблемой, Mono - Open Source. –

+0

@ Ханс: Я получил моно-код. Можно ли спросить, в какую директорию я должен смотреть? – chenwq

+1

Да, рефлектор работает на моноблоках, они представляют собой один и тот же двоичный формат (что и есть вся идея). – IanNorton

ответ

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.

+0

Я знаю, что моно не Microsoft. Но ссылка намного лучше, чем ничего. Я ищу моно-код, все еще ищу его. – chenwq

+0

Спасибо всем людям выше. – chenwq

+0

Будет ли грядущий .Net core 1.0 использовать Mono для своей работы, связанной с CLR? – RBT

 Смежные вопросы

  • Нет связанных вопросов^_^