Kyl*_*ten 3 c# cil metaprogramming expression-trees
我正在尝试DataTable使用System.Linq.ExpressionsAPI 创建一个从对象列表创建的方法,但我无法弄清楚如何生成我在反编译表达式时得到的以下IL typeof (int).
IL_0000: nop
IL_0001: ldtoken System.Int32
IL_0006: call System.Type.GetTypeFromHandle
IL_000B: call LINQPad.Extensions.Dump<Object>
IL_0010: pop
IL_0011: ret
Run Code Online (Sandbox Code Playgroud)
目前我试图通过调用Type.GetType("System.Int")来解决问题,但我想生成代码,typeof (int)如果可能的话.
只需使用Expression.Constant并传入typeof(int)值:
var expression = Expression.Constant(typeof(int), typeof(Type));
Run Code Online (Sandbox Code Playgroud)
typeof无论如何,当你在lambda表达式中使用时会发生这种情况:
Expression<Func<Type>> func = () => typeof(T);
Run Code Online (Sandbox Code Playgroud)