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+LeftArrowCtrl+RightArrowを押します。

図の項目の追加と削除

いつでも、表示されている図を修正して、目的のタイプのみが表示されるようにすることができます。必要に応じて、元に戻す 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年9月17日

関連事項

関連ページ:

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

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

これを調べる

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

アーキテクチャビュー

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

ベースシンボルへ移動

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

派生シンボルに移動

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

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

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