如何使用 codedom 创建匿名类型

How to create an anonymous type using codedom

本质上,我的目标是从我的代码域中获得类似于以下代码的输出:

var foo = new { variable1 = "value", variable2 = 5 };

我不只是将它用于变量赋值,而是想要一个如何创建匿名类型的简单示例。我不确定这个确切的代码是否可以实现,但如果有某种解决方法,你可以指出我的方向,我将非常感激。

我已经查看了 CodeObjectCreateExpression,但我认为这不会满足我的要求,而且我找不到任何其他接近的东西。

在此先感谢大家的帮助。

CodeDOM 试图成为语言中立的并且很长时间没有更新,所以我认为您不能使用它的任何内置类型来做到这一点。但是您可以使用 CodeSnippetExpression 将此代码作为字符串注入:

var expression = new CodeSnippetExpression("new { variable1 = \"value\", variable2 = 5 }");
var statement = new CodeVariableDeclarationStatement("var", "foo", expression);