C# 使用.net生成代码

C# 使用.net生成代码,c#,.net,vb.net,code-generation,C#,.net,Vb.net,Code Generation,.net framework中是否有任何类允许我生成可以另存为.cs或.vb文件的类 请参阅System.CodeDom名称空间。基本上,您可以使用CodeDom创建类的抽象模型。然后实例化CSharpCodeProvider或VBCodeProvider并使用其中一个CodeDomProvider.GenerateCodeDefrom。。。方法将其作为适当类型的源代码发出。这是Windows窗体设计器xsd.exe等使用的底层技术 但是,请注意,CodeDom非常冗长,而且很难处理。如果您的类

.net framework中是否有任何类允许我生成可以另存为.cs或.vb文件的类

请参阅System.CodeDom名称空间。基本上,您可以使用CodeDom创建类的抽象模型。然后实例化CSharpCodeProvider或VBCodeProvider并使用其中一个CodeDomProvider.GenerateCodeDefrom。。。方法将其作为适当类型的源代码发出。这是Windows窗体设计器xsd.exe等使用的底层技术


但是,请注意,CodeDom非常冗长,而且很难处理。如果您的类比较复杂,您可能希望使用T4或NVelocity等模板引擎。

您真的需要特定的.NET类,还是可以使用Visual Studio的加载项

如果你有Visual Studio,一定要查看T4模板——VS中最不知名但最有价值的资产之一

  • 以及Oleg关于T4的优秀博客/网站上的其他内容
至少有一个命令行工具可以从.NET代码中调用以进行转换,但我很确定您也可以将某些转换引擎作为.NET类调用,并让它以编程方式从T4模板生成C#或VB.NET代码

通常情况下,使用T4比CodeDom容易得多——它有其局限性,但在大多数情况下,它是一种快速轻松完成任务的伟大技术