如何从 CodeStatementCollection 生成代码?
How to generate code from a CodeStatementCollection?
A class 我正在重用填充序列化中使用的 CodeStatementCollection。
我想将此 CodeStatementCollection 转换为人类可读的代码。
这可能吗?
您可以使用 GenerateCodeFromStatement()
from CSharpCodeProvider
将单个 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();
}
A class 我正在重用填充序列化中使用的 CodeStatementCollection。
我想将此 CodeStatementCollection 转换为人类可读的代码。
这可能吗?
您可以使用 GenerateCodeFromStatement()
from CSharpCodeProvider
将单个 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();
}