如何从 CodeStatementCollection 生成代码

本文关键字:代码 CodeStatementCollection | 更新日期: 2023-09-27 18:37:09

我重用的一个类正在填充序列化中使用的CodeStatementCollection。

我想把这个CodeStatementCollection变成人类可读的代码。

这可能吗?

如何从 CodeStatementCollection 生成代码

可以使用 CSharpCodeProvider 中的GenerateCodeFromStatement()将单个CodeStatement转换为 C# 代码。要从CodeStatementCollection生成 C# 代码,您只需在循环中调用它:

static string GenerateCode(CodeStatementCollection statements)
{
    var writer = new StringWriter();
    var compiler = new CSharpCodeProvider();
    foreach (CodeStatement statement in statements)
    {
        compiler.GenerateCodeFromStatement(statement, writer, null);
    }
    return writer.ToString();
}