【问题标题】:Splitting autogenerated C# file拆分自动生成的 C# 文件
【发布时间】:2012-01-17 08:41:06
【问题描述】:

我有一个巨大的自动生成的 C# 文件。它包含许多枚举和许多类。 该文件太大,以至于在更新智能感知时会定期阻止 Visual Studio。

我想将文件分割成更小的部分。例如,仅仅将枚举和类分开就已经很好了。

有没有简单的方法可以做到这一点?

编辑:该文件是使用 XSD.exe 从 4 个 XSD 架构(相互导入)生成的。它只生成一次。架构不会改变。如果我可以说服 XSD.exe 忽略从生成过程中导入的类型,则可以从模式中一一生成代码。

【问题讨论】:

  • 文件是如何生成的?
  • 您应该真正研究一下代码生成算法,看看是否可以在那里进行一些修改以将每个类分离到一个单独的文件中。如果是 T4 模板,就不会那么难了。
  • 是什么触发了它更新智能(听起来你只生成了一次这个文件,然后它没有改变)?把它放在一个单独的项目中会有帮助吗?

标签: c# auto-generate


【解决方案1】:

您可以使用partial class,即在多个文件中定义的类。

【讨论】:

    【解决方案2】:

    视情况而定,通常 99.9% 的自动生成代码最好保持不变,现在可以使用部分类或子类进行扩展。这完全取决于您是否打算运行生成自动生成代码的进程。但通常编辑自动生成的代码通常是禁忌,因此是代码自动生成的最大后果之一。

    【讨论】:

      【解决方案3】:

      Partial classes feature 可以解决这个问题。但是由于您没有提供如何或哪个工具生成代码,因此无法预测更新代码会发生什么。如果代码生成在您的控制范围内,您可以先对其进行更新以生成带有 Partial 类的文件,以便轻松管理更新。

      否则,如果这些代码频繁生成,最好不要这样做。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-27
        • 2017-06-15
        • 1970-01-01
        • 1970-01-01
        • 2012-11-27
        • 2015-05-17
        • 2018-03-22
        相关资源
        最近更新 更多