我正在寻找为项目创建小型生成器。我一直在阅读关于CodeDOM的内容,所以创建这些类的语义看起来不是一个问题,但我不确定如何最好地将这一代整合到开发和部署过程中。C#代码生成
我应该如何触发创建类?我已经读过它应该是构建过程的一部分,我应该怎么做?
应该在哪里创建类?我读过这些文件不应该手工编辑,并且从不检查源代码管理。我是否应该担心这个问题,并将这些类生成到与生成器引擎相同的目录中?
我正在寻找为项目创建小型生成器。我一直在阅读关于CodeDOM的内容,所以创建这些类的语义看起来不是一个问题,但我不确定如何最好地将这一代整合到开发和部署过程中。C#代码生成
我应该如何触发创建类?我已经读过它应该是构建过程的一部分,我应该怎么做?
应该在哪里创建类?我读过这些文件不应该手工编辑,并且从不检查源代码管理。我是否应该担心这个问题,并将这些类生成到与生成器引擎相同的目录中?
您的问题的答案部分取决于您生成的课程的目的。
如果这些类是作为开发的一部分生成的,它们应该以文本文件的形式生成并像任何其他类一样签入SCM。
如果您的类是在运行时下动态生成的,作为系统操作的一部分,我根本不会使用CodeDOM。我会使用反射。
看看T4模板(它内置于VS2008)。它允许你创建“模板”类,为你生成代码。 Oleg Sych是一个非常宝贵的资源。
我知道T4模板的存在(并且知道很多人使用它们),但我自己并没有使用它们。除此之外,您还有两个主要选项:
csc
(C#编译器)。此方法的局限性:
这是如何解决构建问题的? 我不确定这是蓝光的意思,但我想在我的编译中加入自动生成的代码...有一些生成C#类的IDL文件。现在,如果另一个团队成员改变了IDL,我想要重建我的C#类。做模板地址? – ripper234 2009-04-12 18:02:03