C# ソースジェネレーターの操作
C# ソースジェネレーター(英語)はコンパイル時に実行され、プロジェクトにコンパイルされる追加の C# ファイルを生成します。 JetBrains Rider を使うと、生成されたソースをエディターやソリューションエクスプローラーで確認できます。 また、実行時に生成されたコードをデバッグしたり、(ツールチェーンでサポートされている場合は)ジェネレーター自体をデバッグしたりすることもできます。
ソースジェネレーターの出力をインスペクションする
ジェネレーターを実行すると、C# ソース(たとえば、 .g.cs で終わるファイル)が生成されます。 JetBrains Rider では、これらのソースに移動して、何が生成され、利用プロジェクトでどのように使われているか確認できます。
ソース生成コードをデバッグする
ソースジェネレーターによって生成された コードは、他の C# コードと同じようにデバッグできます。 アプリケーションやテストで生成されたメソッドを実行する際は、ステップインして変数をインスペクションし、コールスタックを使用して生成されたロジックの動作を理解できます。
デバッグ中にソース生成コードにステップインする
ジェネレーター出力を使用するアプリケーションまたはテストの場合は デバッグセッションを開始するです。
実行が生成されたコードの呼び出しに到達したら、 デバッガーのステップアクションを使用して、生成されたメソッドに入ります。
変数のインスペクションを実行して 式を評価し 、生成されたロジックの実行時動作を検証します。
トラブルシューティング
生成されたファイルをインスペクションできるが、ジェネレータープロジェクトをデバッグできない場合は、次の点を確認してください。
パッケージ / ツールチェーンの不一致。 ジェネレーターのデバッグは、Roslyn およびコンパイラーツールセットのバージョンに影響を受ける可能性があります。 パッケージのバージョンをお使いの JetBrains Rider バージョンでサポートされているものに合わせるか、JetBrains が参照するテンプレートと設定を比較してください。
ジェネレーターが実行されない。 シナリオによってはビルド結果が再利用される可能性があります。 ジェネレーターが確実に実行されるように、使用プロジェクトをリビルドしてください。
増分ジェネレーターキャッシュ。 増分ジェネレーターは、入力値が変化しない場合は作業をスキップすることがあります。 関連する入力値を変更するか、クリーンアップ / リビルドして強制的に再生成してください。

