如何从源代码构建CodeCompileUnit
本文关键字:构建 CodeCompileUnit 源代码 | 更新日期: 2023-09-27 18:02:30
如何从源代码构建CodeCompileUnit ?
解析c#源代码的最佳方法是什么?CodeCompileUnit是正确的选择吗?和howto吗?
谢谢
你已经搞反了,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>