Có thể viết hướng dẫn CIL chung sẽ chuyển đổi các thể hiện của bất kỳ loại nào (cả giá trị và tham chiếu) thành System.String? Cụ thể, tôi quan tâm đến mã Mono.Cecil sẽ đưa các lệnh đó vào một phương thức.Có mã CIL chung nào để chuyển đổi bất kỳ thể hiện kiểu nào thành chuỗi không?
Phân tích một phương pháp chung tôi đã đưa ra những Mono.Cecil gọi: (đó là nghĩa vụ để chuyển đổi các tham số phương pháp thứ i đến chuỗi)
System.Reflection.MethodInfo to_string_method_info = typeof(System.Object).GetMethod("ToString");
Mono.Cecil.MethodReference to_string_reference = injectible_assembly.MainModule.Import(to_string_method_info);
Mono.Cecil.TypeReference argument_type = method_definition.Parameters[ i ].ParameterType;
method_definition.Body.Instructions.Add(processor.Create(Mono.Cecil.Cil.OpCodes.Constrained, argument_type));
method_definition.Body.Instructions.Add(processor.Create(Mono.Cecil.Cil.OpCodes.Callvirt, to_string_reference));
Tuy nhiên, khi gỡ lỗi tôi nhận được một ngoại lệ từ phương pháp tiêm mà "trình biên dịch JIT gặp phải giới hạn nội bộ".
Trong trường hợp như thế này, PEVerify có thể rất hữu ích, vì nó có thể cho bạn biết mã lỗi cụ thể của bạn có. – svick