ReSharper 2019.2ヘルプ

型依存関係図の探索

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

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

初期図の作成

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

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

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

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

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

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

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

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

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

図のビューを調整する

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

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

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

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

Switching layout on the type dependency diagram

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

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

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

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

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

  • 図内のグループ化項目を選択し、Ctrl+Left,ArrowCtrl+Right,Arrowを押します。

図の項目の追加と削除

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

タイプ間の依存関係の学習

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

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

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

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

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

    Transitive dependency

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

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

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

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

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

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

図のアイテムをリファクタリングする

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

また、タイプを目的のフォルダーにドラッグしてフォルダーへ移動リファクタリングを実行することもできます。このリファクタリングは、型を含むファイルをターゲットフォルダーに移動し、名前空間の参照を修正し、必要に応じて内部の可視性をpublicに変更します。
既定では、この動作が有効になっています。無効にするには、ドラッグ&ドロップで「フォルダーに移動」を許可する ThemedIcon RefactorThis Screen Gray をクリックします。

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

ダイアグラムをイメージにエクスポートする

依存関係を調べる時点で、現在のビューをイメージにエクスポートできます。これを行うには、PNGにエクスポートする ThemedIcon Export Screen Gray をクリックし、イメージファイルを保存する場所を指定します。

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

Language: C#Language: VB.NETLanguage: C++Language: HTMLLanguage: ASP.NETLanguage: RazorLanguage: JavaScriptLanguage: TypeScriptLanguage: CSSLanguage: XMLLanguage: XAMLLanguage: ResxLanguage: Build ScriptsLanguage: ProtobufLanguage: JSON
Feature is availableFeature is availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not available

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

最終更新日: 2019年11月13日

関連ページ:

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

アセンブリー・エクスプローラーを使用すると、複数のアセンブリを開いて、開いているアセンブリとフォルダーのリストを保持できます。開いているすべてのアセンブリをトラバースして探索できます。アセンブリノードを展開すると、アセンブリ内の名前空間が一覧表示されます。この名前空間は、アセンブリ参照と同様に、型お...

これを調べる

このコマンドはReSharperのコード探索とインスペクション機能への近道です:コールトラッキング、バリュートラッキング、型階層の探索、コードの課題を見つける、型依存関係図、ファイル構造ウィンドウや他のツールウィンドウからエディターからこのコマンドを呼び出すことができます。コンテキストに応じて、この...

アーキテクチャビュー

アーキテクチャビューを使用すると、プロジェクトの依存関係図を調べたり、以前に取得した依存関係のスナップショットをソリューションの現在の状態と比較することができます。ビューは、ソリューション項目、ダイアグラム領域、およびツールバーで構成されています。ソリューション項目:左のソリューションアイテムには、...

ベースシンボルへ移動

このコマンドを使用すると、継承階層を現在のシンボルの基本タイプまたはメソッドに移動することができます。エディター、ファイル構造ウィンドウおよび他のツールウィンドウからこのコマンドを呼び出すことができます。派生シンボルに移動コマンドと実装に移動コマンドで反対方向のナビゲーションが可能です。ナビゲーショ...

派生シンボルに移動

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

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

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