2012-01-17 89 views
2

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

我想将文件切分成更小的片段。例如,只分离枚举和类就已经很好了。

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

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

+6

文件是如何生成的? – 2012-01-17 08:42:14

+0

您应该仔细研究代码生成算法,看看您是否可以对其进行一些修改以将每个类分隔为单独的文件。如果它是一个T4模板,它不会那么困难。 – 2012-01-17 08:46:23

+0

什么触发它来更新智能(听起来你只生成了一次这个文件,然后它没有改变)?将它放在一个单独的项目帮助? – 2012-01-17 09:07:20

回答

2

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

0

这取决于,通常99.9%的自动生成的代码最好保持不变,这些日子可以使用部分类或子类进行扩展。如果您打算运行生成自动生成的代码的进程,它将全部取决于。但是通常编辑自动生成的代码通常是不可行的,因此也是代码自动生成的最大后果之一。

0

Partial classes feature有没有解决这个问题。但是由于您没有提供如何或由哪个工具生成代码,因此无法预测更新代码会发生什么情况。如果代码生成处于您的控制之下,您可以将其更新为首先使用部分类生成文件,以便轻松管理更新。

否则,如果这些代码频繁产生,最好不要做这种分离。