相关疑难解决方法(0)

是否有通用的CIL代码将任何类型的实例转换为字符串?

是否可以编写通用CIL指令,将任何类型的实例(值和引用)转换为System.String?特别是,我对Mono.Cecil代码很感兴趣,它会将这些指令注入到方法中.

分析一个通用方法我想出了这些Mono.Cecil调用:(它应该将第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 ) );
Run Code Online (Sandbox Code Playgroud)

但是,在调试时,我从注入的方法中获得"JIT编译器遇到内部限制"的异常.

.net il cil mono.cecil

5
推荐指数
1
解决办法
598
查看次数

标签 统计

.net ×1

cil ×1

il ×1

mono.cecil ×1