ReSharper 2020.3 ヘルプ

型依存関係図を見る

ReSharper | アーキテクチャー | 型の依存関係図の表示
ReSharper_ShowTypesDependencies

ReSharper を使用すると、型がソリューション内でどのように依存するかを視覚的に調べることができます。型依存関係図では、異なるプロジェクトまたはコンパイルされたアセンブリから任意の数の型を追加し、それらの間のさまざまな種類の依存関係を視覚化できます。

初期図を作成する

新しい型依存関係図を作成するには、いくつかの方法があります。

  • ソリューションエクスプローラー、オブジェクトブラウザー、アーキテクチャエクスプローラー、クラスビュー、またはアセンブリエクスプローラーウィンドウで 1 つ以上の項目を選択し、メインメニューで ReSharper | アーキテクチャー | 型の依存関係図の表示を選択して右クリックし、型の依存関係図の表示を選択するか、または Control+Shift+Alt+A を押してから型の依存関係図の表示を選択します。
    この場合、選択したアイテム内で宣言されたすべての型が図に追加され、集計、使用状況、継承の依存関係が視覚化されます。

  • エディターの任意の場所にキャレットを設定し、メインメニューで ReSharper | アーキテクチャー | 型の依存関係図の表示を選択するか、これを調べるコマンドを呼び出し(ReSharper | インスペクション | これを調べるを選択するか Control+Shift+Alt+A を押す)、次に型の依存関係図の表示を選択します。
    この場合、ファイルのすべての型がダイアグラムに追加され、集約、使用、継承の依存関係が視覚化されます。

  • アーキテクチャビューで、1 つまたは複数の項目を選択し、選択項目 right-click を選択し、コンテキストメニューで型の依存関係図の表示を選択します。

  • ベースシンボルへ移動派生シンボルに移動API を公開するために移動するまたは同様のコマンドの結果リストで、Alt+Num+ を押すか、ダイアグラムに表示する Themed icon type layout alt screen gray をクリックします
    ベース / 派生シンボルの場合、継承階層の対応する部分がダイアグラムに追加され、継承の依存関係のみが視覚化されます。API を公開する場合、図には、指定された型を返し、型の依存関係のみを返すメソッドを含む型が表示されます。

  • 検索結果ウィンドウまたは階層ウィンドウに表示される結果のリストについては、ダイアグラムに表示する Themed icon type layout alt screen gray をクリックしてください。
    これらの場合、すべての使用箇所または階層エントリが図に追加され、使用箇所 / 継承の依存関係が視覚化されます。

  • 1 つまたは複数のプロジェクト参照を選択して右クリックし、ダイアグラムに使用箇所を表示する Themed icon type layout alt screen gray を選択します。
    この場合、図の使用箇所は、参照プロジェクトで参照されているアセンブリからの型の使用箇所を示します。

新しく作成されたプロジェクト依存関係図が階層ウィンドウの新しいタブに表示されます。

ダイアグラムはソリューションと同期されていないことに注意してください。つまり、コードの型を変更または削除しても、ダイアグラムは変更されません。ダイアグラムが最新かどうかを確認するには、右下隅に表示される作成時間を確認できます。ツールバーのリフレッシュ・型の依存性 Themed icon refresh screen gray をクリックして、ダイアグラムを再構築することもできます。

ダイアグラムの表示を調整する

型依存性図は、次の 2 つの方法でレイアウトできます。

  • 継承階層レイアウター — このオプションは、継承関係に従って型を配置します。基本型は上に移動します。

  • ビジネスロジックレイヤー — このオプションは、表示されているすべての関係に従って型を配置します。

これらのオプションを切り替えるには、左の対応するセレクタを使用します。

Switching layout on the type dependency diagram

ダイアグラムのレイアウトは、図をリフレッシュしたり、型を追加または削除したり依存関係フィルターを変更し たりするたびに自動的にリフレッシュされます。

ダイアグラムをパンおよびズームするには、ダイアグラム領域の左上隅にあるコントロールを使用します。または、図の項目の外の図エリアの任意の場所をクリックし、手カーソル Cursor hand が表示されている間にドラッグすることもできます。ズームの場合、マウスホイールを使用することもできます。

ダイアグラムのレイアウトは自動的に計算されますが、必要に応じて変更できます。すべてのアイテムを移動できます。アイテム(型、依存関係リンク、またはグループ化アイテム)を移動するには、まずクリックして選択し、次にクロスカーソル Cursor cross が表示されている間にクリックしてドラッグします。

必要に応じて、次のいずれかの方法で、ダイアグラムのグループ化項目を折りたたんで展開できます。

  • グループ化アイテムの左上隅にある下矢印をクリックします。折りたたむと、記号が上矢印に変わり、クリックしてアイテムを展開できます。

  • ダイアグラム内のグループ化項目を選択し、Ctrl + Left ArrowCtrl + Right Arrow を押します。

ダイアグラムの項目を追加および削除する

いつでも、表示されている図を修正して、目的の型のみが表示されるようにすることができます。必要に応じて、元に戻す Themed icon undo screen gray をクリックするか Ctrl+Z を押して、ダイアグラムの変更(項目の追加 / 削除)を段階的に取り消すことができます。元に戻すコマンドを逆にするには、やり直し Themed icon redo screen gray をクリックするか、Ctrl+Y を押します。

ダイアグラムから型とフォルダーを削除するには、項目をグループ化するときに右上隅の十字を使用するか、項目が選択されているときに Delete を押します。または、保存する項目を選択して右クリックし、コンテキストメニューで選択したアイテムのみを表示するを選択します。複数選択の場合、Ctrl - 項目をクリックします。

ダイアグラムにアイテムを追加する方法はいくつかあります。

  • 型、フォルダー、プロジェクトをソリューションエクスプローラーからダイアグラムにドラッグアンドドロップします。

  • エディターで型を選択し、選択した型をダイアグラムにドラッグアンドドロップします。

  • 参照されているすべての型を検索して追加するには、型またはグループ化アイテムを右クリックし、コンテキストメニューで参照されるすべての型を追加するを選択します。グループ化アイテム(フォルダーまたはプロジェクト)でこのコマンドを呼び出すと、ReSharper は現在表示されているすべての型の参照型を追加します。

  • ソリューションと参照アセンブリから名前で型を検索して追加するには、検索ボックスに名前を入力し始めます。次のように入力するときに、ワイルドカード(アスタリスク * など)とキャメルハンプを使用できます。

    Adding types to the type dependency diagram
    型を選択して Enter を押すか、それをクリックして図に追加します。ドロップダウンで緑色でハイライトされている型は、すでに図に追加されています。そのような型を選択すると、ダイアグラムのフォーカスがその型に移動します。

  • 詳細ポップアップで、関連する型をクリックして追加するか、すべての使用された型をダイアグラムに追加するダイアグラムにすべての用途を追加するすべての基本型を追加する直ちに継承するすべての継承を追加するリンクを使用して複数の型を追加します。

特定の型とコンテナーを研究する

ノードが折りたたまれている場合、その上にマウスを移動して、中身をすばやく確認できます。表示されるポップアップで、このノード内の図に追加された型の数と、このノード内から参照されたすべてのモジュールを確認できます。

Studying projects and containers

必要に応じて、参照されているモジュールをクリックするか、不足しているアイテムを追加をクリックして、このノードから他のアイテムをダイアグラムに追加できます。

任意の型をダブルクリックして、エディターで開くことができます。コンパイルされたアセンブリで型が定義されている場合、コンパイルされたコードに移動するための推奨する方法に従って型が開かれます

特定の型(および型間の依存関係)の詳細情報を取得できます。型の詳細を取得するには、その上にマウスを移動し、詳細ポップアップが表示されたらすぐに、その上にマウスポインターを移動します。

型の詳細ポップアップでは、指定された型が使用する型、型が使用される場所、継承された型、コンストラクターパラメーターで使用される型などを確認できます。
型に XML ドキュメントがある場合、要約もポップアップに表示されます。

型をクリックして、ダイアグラムに追加できます。緑色でハイライトされている型は、すでに図に追加されています。そのような型をクリックすると、ダイアグラムのフォーカスがその型に移動します。上隅の宣言に移動リンクを使用すると、エディターで型を開くことができます。

Details of specific type on the dependency diagram

型間の依存関係を調査する

型依存図では、いくつかの種類の依存関係を視覚化できます。特定の種類の依存関係を表示または非表示にするには、フィルター依存関係 Themed icon filter screen gray セレクタの対応する項目を使用します。

  • 集約の依存関係 — 型が他の型のコレクションまたはコンテナーである場合、一種の依存関係を表示します。
    この種の依存関係は、緑色の点線で示されています。対応するフィールドの名前が行の横に表示されます。この行にマウスを合わせると、フィールド宣言が表示され、エディター内の対応する場所に移動できます。

  • 依存関係を使用する — ある型の変数、パラメーター、またはメソッドの戻り値が別の型で使用されている場合に、一種の依存関係を表示します。
    この種の依存関係は、太さが相対的な使用回数を反映する青い線で示されています。この行にマウスを合わせると、使用箇所のリストが表示されます。

    Usage dependency
    特定の用途をクリックすると、テキストエディターの対応する場所に移動し、すべての使用箇所を表示リンクをクリックすると、検索結果ウィンドウのすべての用途が開きます。

  • 継承の依存関係 — ある型が別の型を拡張または実装するときに、一種の依存関係を表示します。この種の依存関係は灰色の線で示されています。この行にマウスを合わせると、継承関係が表示され、エディター内の対応する場所に移動できます。
    推移的な継承の依存関係は、破線を使用して示されています。このような行にマウスを合わせ、ポップアップを使用して、依存関係がどの型であるかを確認し、これらの型をクリックして図に追加できます。

    Transitive dependency

  • 戻り値の型依存性 — ある型に別の型を返すメソッドまたはプロパティがある場合、一種の依存関係を表示します。この種の依存関係は紫色の線で示されています。この行にマウスを合わせると、メンバーのリストが表示され、エディター内の対応する場所に移動できます。

  • コンストラクターインジェクション — ある型が別の型のコンストラクターパラメーターとして公開されている場合に、一種の依存関係を表示します。この種の依存関係は茶色の線で示されています。この行にマウスを合わせると、コンストラクターが表示され、エディター内の対応する場所に移動できます。

ダイアグラム上の他の ReSharper 機能を呼び出す

次に移動メニューの項目の利用可能なすべてのナビゲーション宛先を一覧表示するには、Control+Shift+G を押すか、項目を右クリックして次に移動を選択します。

項目が選択されているときに Alt+Shift+L を押すと、ソリューションエクスプローラーで任意の項目(ファイル、フォルダー、またはプロジェクト)を見つけることができます。

型の詳細ポップアップ検索結果ウィンドウにすべての使用済み型を表示するまたは検索結果ウィンドウにすべての使用箇所を表示するをクリックするか、依存関係リンクのポップアップですべての使用箇所を表示をクリックして、関連する使用箇所をリストすることもできます。

ダイアグラムの項目をリファクタリングする

ダイアグラム上の任意の項目から、使用可能なすべてのリファクタリングを呼び出すことができます。これを行うには、Control+Shift+R を押すか、右クリックしてリファクタリングを選択します。

型を目的のフォルダーにドラッグして、フォルダーへ移動リファクタリングを実行することもできます。このリファクタリングにより、型を含むファイルがターゲットフォルダーに移動し、ネームスペース参照が修正され、必要に応じて内部の可視性がパブリックに変更されます。
この動作はデフォルトで有効になっていることに注意してください。これを無効にするには、ドラッグ & ドロップで「フォルダーに移動」を許可する Themed icon refactor this screen gray をクリックします。

ドラッグ & ドロップによるリファクタリングの後、ダイアグラムは自動的に更新されますが、リファクタリングメニューから呼び出す他のリファクタリングはダイアグラムを更新しないことに注意してください。ダイアグラムのツールバーでリフレッシュ・型の依存性 Themed icon refresh screen gray をクリックする必要があります。

ダイアグラムをファイルにエクスポートする

依存関係を調べるときはいつでも、次のツールバーボタンを使用して、図をファイルにエクスポートできます。

  • PNG にエクスポートする Icon export to png は、ダイアグラムの現在のビューを PNG イメージにエクスポートします。

  • GraphML にエクスポート Icon export to graphml は、外部分析のためにダイアグラムを GraphML 形式でエクスポートします。

  • 大きな図を印刷する必要がある場合は、XPS にエクスポート Icon export to xps を使用して図を XPS 形式でエクスポートします。

この機能は、次の言語とテクノロジーでサポートされています。

C# の機能の使用方法については、こちらの説明と例を参照してください。他言語の詳細については、言語による ReSharper の対応するトピックを参照してください。

関連ページ:

アセンブリエクスプローラーウィンドウ

アセンブリエクスプローラーを使用すると、複数のアセンブリを開き、開いているアセンブリとフォルダーのリストを保持できます。開いているすべてのアセンブリをトラバースして探索できます。アセンブリノードを展開すると、アセンブリ内の名前空間が一覧表示されます。これは、タイプ、タイプメンバー、アセンブリ参照にさらに展開できます。任意のタイプをダブルクリックして逆コンパイルしたり、シンボルサーバーからソースをフェッチしたりできます(設定によって異なります)。さらに、アセンブリエクスプローラーには、現在のタイプ...

これを調べる

このコマンドは ReSharper のコード探索とインスペクション機能への近道です: コールトラッキング、バリュートラッキング、型階層を調べる、コードの問題を見つける、型依存関係図、このコマンドは、ソリューションエクスプローラー、ファイル構造ウィンドウおよびその他のツールウィンドウから呼び出すことができます。コンテキストに応じて、このショートカットを使用すると、そのコンテキストで使用可能なすべてのコード探索機能にアクセスできます。コンテキストで利用可能なコード探索機能を表示するキャレットをエディター...

アーキテクチャビュー

アーキテクチャビューを使用すると、プロジェクトの依存関係図を探索し、以前に取得した依存関係のスナップショットをソリューションの現在の状態と比較できます。このビューは、ソリューションアイテム、ダイアグラム領域、およびツールバーで構成されています。ソリューション項目:左のソリューションアイテムには、ソリューションのすべてのプロジェクトとアイテムのグループ化が含まれます。グループ化セレクタに応じて、グルーピングがない場合はプロジェクトがプレーンリストとして表示され、グループ化オプションに応じて階層が

API を公開するために移動する

|API の公開このコマンドを使用すると、型からソリューション内のすべての場所に移動し、この型のインスタンス(パブリックフィールドとプロパティ、メソッドの戻り値、出力パラメーターなど)を取得できるアセンブリを参照できます。コマンドは、ソリューションからの任意の型の宣言または使用箇所、および参照された

検索結果ウィンドウ

このウィンドウは、さまざまな検索結果(たとえば、シンボルの使用箇所、外部シンボルの使用箇所、シンボルの API の公開など)を表示するために使用されます。最新の検索結果と以前の検索結果をさまざまなタブに表示します。同じ検索 / ナビゲーションコマンドを除いて、新しい各検索コマンドの結果は別々のタブに表示されます。これらの結果をダブルクリックすると、特定の検索結果を含むドキュメントをすばやく開くことができます。Visual Studio のプレビュータブでファイルを開く場合は、ReSharper オ...

階層ウィンドウ

階層ウィンドウには、コードのいくつかの型階層構造が表示されます。型階層 :このビューには、メンバーを含むタイプの階層と、特定のタイプのすべてのサブタイプおよびスーパータイプのリストが表示されます。階層を分析し、ダブルクリックして任意の型の宣言に移動できます。ツールバーコントロールリフレッシュコードの変更を外部に反映するためにウィンドウの内容を更新します。これをベースに選択されたタイプが階層ツリーのルートになり、それに応じてツリーが再構築されます。新しい基本タイプは太字でハイライトされています。...