Мне просто интересно узнать, можно ли это сделать или нет. Я не планирую делать это, если он не упакует некоторые существенные преимущества в производительности. Я разработчик веб-и игр, но я обычно не разрабатываю игры в C#.Возможно ли использовать код в MSIL?
ответ
Да, это возможно - вы можете использовать ilasm
(поставляется с .NET SDK) для компиляции кода. Тем не менее, нет поддержки IDE для Visual Studio. Нет никаких преимуществ в производительности, которые вы можете извлечь из этого, что вы не сможете получить другими средствами - в частности, C++/CLI охватывает все низкоуровневые функции CLR, которые могут принести некоторую выгоду и недоступны с C# или VB - в частности, no-copy (ref
) unboxing, простые неограниченные указатели на функции (в отличие от делегатов) и связанную с ним команду calli
IL и ref
(управляемый указатель на языке CLI) локальные переменные (в отличие от простых параметров).
Да, вы можете; Microsoft's MSIL Assembler (ilasm.exe) из .NET SDK скомпилирует ваш IL к исполняемому коду. Я не вижу причин для этого, кроме как в очень сфокусированных областях, где вы нашли существенное преимущество в производительности.
Вот подробный, если датирован, article, описывающий, как это сделать.
Или вы можете испустить немного CIL с вашего C#. Feeding an object literal to ILGenerator
В среде IDE IDE есть встроенный плагин для проектов il. Я не использовал его, поэтому я не уверен, какую помощь он предоставляет. http://www.icsharpcode.net/OpenSource/SD/