1

我有一个在运行时动态生成的 C# 代码System.CodeDom.CodeCompileUnit,我使用 编译它Microsoft.CSharp.CSharpCodeProvider,我想要的是在这个字符串中插入一个已经定义和初始化的变量(一个 ArrayList),这样我就可以在编译之前使用它,我应该怎么做?

4

1 回答 1

2

您需要生成创建此变量的代码并用您拥有的值填充它。或者,您可以为您生成的方法之一添加参数并在运行时传递它。没有什么神奇的方法可以帮到你。

CodeDom 是不完整的、过时的和过时的。现在你应该使用 T4(如果你想将代码作为文本)或 Expressions 和 IL(如果你想执行动态生成的代码)。如果您使用 Expessions,插入变量是微不足道的。使用 T4,它只需要几行代码,但也需要手动完成。

于 2015-05-23T05:24:49.410 回答