我正在寻找将整个方法转换为表达式树的能力。把它写出来会很糟糕。:)public static int Add(int a, int b) return a + b;我想要获取一个内存中的对象来表示这一点有没有人和Roslyn一起做过这样的事情?
编辑:澄清:我希望将任何C#方法(例如,上面的方法)作为文本输入,并生成一个结果表达式。基本上,我希望将任何给定的C#方法编译成表达式树。
我在这里的意思是,我们如何从某个模板T add(T a, T b) ...进入生成的代码?我想出了几种方法来实现这一点,我们将泛型函数作为Function_Node存储在AST中,然后每次使用它时,我们都会在原始函数节点中存储一个自身的副本,并将所有类型的T替换成正在使用的类型。:vector<std::pair<Type, std::string>> arguments;};
然后,您可以为这些生成
我试图使用Roslyn或现在称为.NET编译器平台来创建一个小型代码生成器,我很谨慎地使用了codedom,这很麻烦,但是MSDN得到了一个参考,现在Roslyn几乎没有文档,所有文档都集中在代码分析上,而不是代码生成。我找到了一些类似于FieldDeclarationSyntax和ExpressionSyntax的东西,但是我找到的所有示例都生成类似Myclass myvariable = new ()这样的东西;没有什么比如何<e
对于远程处理场景,作为数组或元组对象列表(优点之一是强类型),接收结果将是非常好的。示例:动态转换SELECT Name, Age FROM Table => List<Tuple<string,int>>
问题:在给定任意数据表(如SQL或CSV文件)的情况下,每个列的类型只有在运行时才知道,是否有任何示例可以生成动态创建强类型List<Tuple<...>>对象的代码。代码应该