【发布时间】:2011-01-03 08:32:51
【问题描述】:
.net 框架中是否有任何类允许我生成可以保存为 .cs 或 .vb 文件的类?
【问题讨论】:
标签: c# .net vb.net code-generation
.net 框架中是否有任何类允许我生成可以保存为 .cs 或 .vb 文件的类?
【问题讨论】:
标签: c# .net vb.net code-generation
您真的需要特定的 .NET 类,还是可以使用 Visual Studio 的插件??
如果您有 Visual Studio,请务必查看 T4 模板 - VS 中鲜为人知但最有价值的资产之一!
至少有一个命令行工具,您可以从 .NET 代码调用来进行转换,但我很确定您也可以调用一些转换引擎作为 .NET 类并让它生成 C# 或 VB。 NET 代码以编程方式从您的 T4 模板中获取。
通常情况下,使用 T4 比 CodeDom 容易得多 - 它有其局限性,但在大多数情况下,它是一种可以快速轻松地完成工作的伟大技术。
【讨论】:
查看 System.CodeDom 命名空间。基本上,您使用 CodeDom 来创建类的抽象模型。然后实例化 CSharpCodeProvider 或 VBCodeProvider 并使用 CodeDomProvider.GenerateCodeFrom... 方法之一将其作为适当类型的源代码发出。这是 Windows 窗体设计器、xsd.exe 等使用的底层技术。
但请注意,CodeDom 非常冗长且难以使用。如果您的类比较复杂,您可能需要改用 T4 或 NVelocity 等模板引擎。
【讨论】: