2012-01-17 9 views
2

私は巨大な自動生成されたC#ファイルを持っています。それは多くのenumと多くのクラスを含んでいます。 ファイルが非常に大きいため、Intellisenseを更新するとVisual Studioが定期的にブロックされます。自動生成されたC#ファイルの分割

私は小さなセグメントにファイルを切り詰めたいと思います。たとえば、列挙型とクラスを分離するだけで、すでにうまくいくでしょう。

これを行う簡単な方法はありますか?

EDIT:ファイルはXSD.exeを使用して4つのXSDスキーマ(互いにインポート)から生成されました。それは一度だけ生成されました。スキーマは変更されません。私がXSD.exeが生成プロセスからインポートされた型を無視するように納得できれば、スキーマからコードを1つずつ生成することはOKです。

+6

ファイルはどのように生成されますか? –

+0

実際にコード生成アルゴリズムを調べて、各クラスを別々のファイルに分けるためにいくつかの変更を加えることができるかどうかを確認する必要があります。それがT4テンプレートなら、それは難しいことではありません。 –

+0

インテリジェンスを更新する原因は何ですか(このファイルを生成したのは1回だけだと思いますが、変更されていないと思います)。それは別々のプロジェクトの助けに入れるだろうか? –

答えて

2

partial class、つまり複数のファイルで定義されたクラスを使用できます。

0

通常、自動生成されたコードの99.9%がそのまま残されていますが、これらの日は部分クラスまたはサブクラスを使用して拡張できます。自動生成されたコードを生成するプロセスを実行するつもりであれば、それはすべてに依存します。しかし、一般に自動生成されたコードを編集することは、通常、コード自動生成の最大の結果の1つで、結果的に不可能です。

0

Partial classes featureこれに対処するためです。しかし、コードの生成方法やツールを指定していないため、コードの更新で何が起きるか予測できません。コード生成がコントロール内にある場合は、更新を簡単に管理できるように、部分クラスを含むファイルを生成するように更新することができます。

それ以外の場合は、これらのコードが頻繁に生成される場合は、この分離を行わない方がよいでしょう。

関連する問題