代码之家  ›  专栏  ›  技术社区  ›  blu

C#代码生成

  •  7
  • blu  · 技术社区  · 16 年前

    我正在考虑为一个项目创建一个小型类生成器。我一直在阅读CodeDOM,因此创建类的语义似乎不是问题,但我不确定如何最好地将生成集成到开发和部署过程中。

    1. 我应该如何触发类的创建?我已经读到它应该是构建过程的一部分,我应该如何做到这一点?

    2. 应该在哪里创建类?我读到这些文件不应该手工编辑,也不应该签入源代码管理。我是否应该担心这一点,只是将类生成到与生成器引擎相同的目录中?

    3 回复  |  直到 15 年前
        1
  •  8
  •   Michael Meadows    16 年前
        2
  •  0
  •   Sam Harwell    15 年前

    我知道T4模板的存在(并且知道许多人使用它们),但我自己没有使用过它们。除此之外,您还有两个主要选择:

      • 每个输入只能生成一个输出。
      • 由于您无法控制文件的生成顺序,并且文件不是在生成时生成的,因此您的输出只能有效地从单个输入文件派生。
      • 单文件生成器必须安装在开发人员的计算机上 如果他们计划编辑输入文件 . 由于生成的代码在源代码管理中,如果他们不编辑输入,那么就不需要重新生成输出。
    1. obj 目录,并将其添加到 csc (C#编译器)。此方法的局限性:
      • 编写目标文件比编写单个文件生成器更困难。
      • 构建取决于生成输出,而不管用户是否编辑输入。
      • 由于生成的代码不是项目的一部分,因此查看生成的代码(如设置断点)会有点困难。
        3
  •  0
  •   Dave Swersky    13 年前

    问题的答案部分取决于生成类的目的。

    如果类是作为 发展

    如果您的类是在