ReSharper 2020.2 ヘルプ

タイプ依存関係図を見る

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

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

初期図を作成する

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

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

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

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

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

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

  • 1 つまたは複数のプロジェクト参照を選択して右クリックし、ダイアグラムに使用箇所を表示する ThemedIcon TypeLayoutAlt Screen Gray png を選択します。
    この場合、図の使用箇所は、参照プロジェクトで参照されているアセンブリからのタイプの使用箇所を示します。

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

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

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

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

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

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

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

Switching layout on the type dependency diagram

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

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

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

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

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

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

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

いつでも、表示されている図を修正して、目的のタイプのみが表示されるようにすることができます。必要に応じて、元に戻す ThemedIcon Undo Screen Gray png をクリックするか Ctrl+Z を押して、ダイアグラムの変更(項目の追加 / 削除)を段階的に取り消すことができます。元に戻すコマンドを逆にするには、やり直し ThemedIcon Redo Screen Gray png をクリックするか、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

タイプ間の依存関係を調査する

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

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

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

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

  • 継承の依存関係 — あるタイプが別のタイプを拡張または実装するときに、一種の依存関係を表示します。この種の依存関係は灰色の線で示されています。この行の上にマウスを置くと、継承関係が表示され、エディターの対応する場所に移動できます。
    推移的な継承の依存関係は破線で示されています。そのような線の上にマウスを移動し、ポップアップを使用して、依存関係が通過するタイプを確認し、クリックしてこれらのタイプをダイアグラムに追加できます。

    Transitive dependency

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Language: C#Language: VB.NETLanguage: C++Language: HTMLLanguage: ASP.NETLanguage: RazorLanguage: JavaScriptLanguage: TypeScriptLanguage: CSSLanguage: XMLLanguage: XAMLLanguage: ResxLanguage: Build ScriptsLanguage: ProtobufLanguage: JSON
Feature is available in C#Feature is available in Visual Basic .NETFeature is not available in C++Feature is not available in HTMLFeature is not available in ASP.NETFeature is not available in RazorFeature is not available in JavaScriptFeature is not available in TypeScriptFeature is not available in CSSFeature is not available in XMLFeature is not available in XAMLFeature is not available in Resource filesFeature is not available in build script filesFeature is not available in ProtobufFeature is not available in JSON

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

最終更新日 :

関連ページ:

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

ReSharper | Windows | アセンブリエクスプローラーアセンブリエクスプローラーを使用すると、複数のアセンブリを開いて、開いているアセンブリとフォルダーのリストを保持できます。開いているすべてのアセンブリをトラバースして探索できます。アセンブリノードを展開すると、アセンブリ内の名前...

これを調べる

ReSharper | インスペクション | これをインスペクションする ...このコマンドは ReSharper のコード探索とインスペクション機能への近道です:コールトラッキング、バリュートラッキング、型階層を調べる、コードの課題を見つける、型依存関係図、このコマンドは、ソリューションエク...

アーキテクチャビュー

ReSharper | アーキテクチャー | プロジェクトの依存関係図を表示するアーキテクチャビューを使用すると、プロジェクトの依存関係図を探索し、以前に取得した依存関係のスナップショットをソリューションの現在の状態と比較できます。このビューは、ソリューションアイテム、ダイアグラム領域、および...

派生シンボルに移動

ReSharper | ナビゲート | 派生シンボルこのコマンドは、現在のシンボルのすべての派生シンボルのリストを取得し、継承階層を下にしてそれらの 1 つに直接ナビゲートすることができます。同様のコマンド実装に移動があります。このコマンドは、継承チェーンの中間ステップを使用せずに、実装のみを...

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

ReSharper | ナビゲート | 次にナビゲート | API の公開|API の公開このコマンドを使用すると、型からソリューション内のすべての場所に移動し、この型のインスタンス(パブリックフィールドとプロパティ、メソッドの戻り値、出力パラメーターなど)を取得できるアセンブリを参照できま...

検索結果ウィンドウ

ReSharper | Windows | 検索結果このウィンドウは、さまざまな検索結果を表示するために使用されます (たとえば、シンボルの使用箇所、外部シンボルの使用箇所、シンボルのAPI の公開など)。最新の検索結果と以前の検索結果を別のタブに表示します。同じ検索 / ナビゲーションコマンド...