如何从源代码构建CodeCompileUnit

本文关键字:构建 CodeCompileUnit 源代码 | 更新日期: 2023-09-27 18:02:30

如何从源代码构建CodeCompileUnit ?

解析c#源代码的最佳方法是什么?

CodeCompileUnit是正确的选择吗?和howto吗?

谢谢

如何从源代码构建CodeCompileUnit

你已经搞反了,CodeCompileUnit是用来生成源代码的。如果你已经有了源代码,那么你只需要一个继承CodeDomProvider的类来编译代码。如Microsoft.CSharp.CSharpCodeProvider或Microsoft.VisualBasic.VBCodeProvider.

您可能正在询问关于解析现有源代码文件的问题。这就是System.CodeDom.Compiler.CodeParser要做的。这个抽象类没有现存的具体实现,也永远不会有。这篇博文解释了为什么。

你可以用CodeSnippetCompileUnit来做,CodeSnippetCompileUnit是CodeCompileUnit的一个子类:

string source = @"
using System;
namespace SomeNamespace 
{
  public class Class0
  {     
  }
}";
var csu0 = new CodeSnippetCompileUnit(curSource);

额外的信息:

如果你有多个单元,你可以把它们放在一起形成一个组件:

CodeDomProvider provider = new CSharpCodeProvider();
CompilerResults results = provider.CompileAssemblyFromDom(new CompilerParameters(), csu0, csu1 /*arbitrary number*/);

当然,所有这些CodeSnippetCompileUnit中的类可能会相互引用

你的问题有点模糊。你在找教程吗?你有什么特别的任务要完成吗?具体问题是Stackoverflow的本质。除此之外,我会给你一些可能对你开始有帮助的地方:

  • CodeDOM的MSDN文档
  • 动态代码集成与CodeDom
  • <
  • CodeDOM助理/gh>