Tôi đã cố gắng chạy mã mẫu xuất hiện trên các trang tài liệu cho lớp System.Reflection.Emit.LocalBuilder nhưng có vẻ như các cuộc gọi đến LocalBuilder.SetLocalSymInfo(string, int, int)
không làm bất cứ điều gì kể từ khi IL dissasembler thấy điều này như là IL cho SampleAssembly.dll:Tại sao LocalBuilder.SetLocalSymInfo không phát ra tên biến?
.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
Tại sao không phải là tên biến (myString
và myInt
) được liệt kê trong Dissasembler?
Môi trường Thông tin:
- Windows 7 64 bit
- Visual Studio 2010 Professional SP1
- Net 4.0.30319 SP1
- Target Framework: Net 4 Client Profile
- cấu hình gỡ lỗi (đối với chương trình sử dụng System.Reflection.Emit)
Chỉnh sửa: Như tôi đã lưu ý trong một chú thích, có một tệp SampleAssembly.pdb được tạo cùng với tệp SampleAssembly.dll.
Cảm ơn bạn, tôi sẽ trao cho bạn tiền thưởng của tôi khi tôi có thể, (trong 17 giờ, 200 điểm) nhưng không thể đánh dấu câu trả lời này là câu trả lời chính xác vì tôi không hỏi câu hỏi gốc! – thr
Có chúng tôi đi, tiền thưởng được trao, xin lỗi vì sự chậm trễ :) – thr