Я попытался запустить пример кода, который появляется на странице документации для System.Reflection.Emit.LocalBuilder класса, но оказывается, что призывы к LocalBuilder.SetLocalSymInfo(string, int, int)
ничего не делают, так как IL Dissasembler показывает это как IL для SampleAssembly.dll:Почему не LocalBuilder.SetLocalSymInfo испускает имена переменных?
.method public static string Function1(int32 A_0) cil managed
{
// Code size 10 (0xa)
.maxstack 1
.locals init (string V_0,
int32 V_1)
IL_0000: ldarg.0
IL_0001: stloc.1
IL_0002: ldstr "string value"
IL_0007: stloc.0
IL_0008: ldloc.0
IL_0009: ret
} // end of method Example::Function1
Почему переменные имена (myString
и myInt
) не указаны в списке Dissasembler?
Enviroment Информация:
- для Windows 7 64 бит
- Visual Studio 2010 Professional SP1
- .Net 4.0.30319 SP1
- Target Framework: .Net 4 Client Profile
- конфигурации Debug (для программы, использующей System.Reflection.Emit)
Редактирование: Как я заметил в комментарии, создается файл SampleAssembly.pdb вместе с файлом SampleAssembly.dll.
Спасибо, я дам вам свою награду, когда смогу, (через 17 часов +200 очков), но не могу отметить это как правильный ответ (что это такое), поскольку я не задавал оригинальный вопрос! – thr
Там мы идем, награда за награду, извините за задержку :) – thr