繁体   English   中英

C#代码生成(Visual Studio模板或Resharper插件)

[英]C# code generation (visual studio template or resharper addin)

我想基于现有代码生成一些C#代码。 更确切地说,我需要一些用于现有枚举的映射器以及它们的转换器和单元测试。 为什么要生成此代码而不是采用通用方法,这将是一个较长的讨论,但是考虑到我想基于某些枚举类型生成一些类,我将有哪些选择? 我只是在考虑Visual Studio扩展,一些模板,或者可能是Resharper插件,但到目前为止,我还没有做过类似的事情……对于那些曾经有过类似工作经验的人,我将不胜感激。

ReSharper支持实时模板作为生成代码的一种方式。 您可以在其中创建任何您喜欢的代码,以及可编辑或链接的热点,以提供自定义点(例如,当前文件名,类名,时间,新指南,建议的变量名等)。 您可以在现有文件中生成代码段,围绕现有代码或创建新文件。 ReSharper 8还引入了对多文件模板的支持,一次创建多个文件。

但是,ReSharper的模板不支持循环之类的东西-例如,您不能循环XML文件并为每个元素生成一个类成员。 T4将是一个更好的解决方案。

Reegenerator支持从现有代码生成代码。 您可以创建一个代码生成器,然后将其附加到包含枚举类型的文件。 每次保存文件时都会执行生成器。 代码生成器可以访问Visual Studio DTE对象,它将通过CodeElement类(CodeClass,CodeAttribute等)为您提供代码结构。 从那里,您可以通过类似T4的模板生成单独的部分文件,也可以直接使用DTE EditPoint直接操作代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM