2012-03-20 2 views
2

Я охота за короткий пример по программированию генерации IL, который включает в себя:как узнать о программировании ILGenerator?

  • возвращаемое значение
  • разветвлений на нуль теста
  • присваивающей к временной переменной, имеющей или метод с функцией return в качестве аргумента другому методу

Было бы здорово, если бы существовал ресурс с примерами + пояснение по тому, что происходит.

Помогает ли VS 2010 отслеживать на уровне il?

я мог бы опубликовать некоторые Неполное примеры

ответ

4

Простой способ узнать о IL, чтобы написать код, например, C# и посмотреть на сгенерированный ИЛ. Таким образом, вы можете легко увидеть, к чему относятся различные конструкции кода. Для большой книги по этому вопросу я рекомендую Expert .NET IL Assembler.

+0

ty. Я посмотрю на это. Похоже, в настоящее время в мире книжной сети нет активности. Надеюсь, это не показатель того, что происходит с платформой .net. – sgtz

+0

некоторая достойная документация на MS http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k (SYSTEM.REFLECTION.EMIT.OPCODES.CALLVIRT); k (CALLVIRT); k (TargetFrameworkMoniker-% 22.NETFRAMEWORK% 2cVERSION% 3dV4.0% 22); k (DevLang-CSHARP) & rd = true – sgtz

+0

@sgtz: Извините, что, не считая этого, я предположил, что вы уже о MSDN. –

1

Один хороший способ - написать код C#, который делает то, что вы хотите, а затем отлаживать его на уровне IL, используя ILSpy. Вы могли бы просто взглянуть на сгенерированный ИЛ, но если вам трудно понять, что происходит, то это просветление, способное пройти через него.

+0

IL Spy - отдельный инструмент, или он также работает как плагин? Просто играя с ним сейчас. – sgtz

+0

Это автономный инструмент, его невозможно запустить в Visual Studio, если это то, о чем вы думали. – hvd