型依存関係ダイアグラムを調べる
ReSharper を使用すると、ソリューション内で型が相互にどのように依存しているかを視覚的に調べることができます。さまざまなプロジェクトまたはコンパイルされたアセンブリから任意の数の型を型依存関係ダイアグラムに追加し、それらの間のさまざまな種類の依存関係を調べることができます。
初期ダイアグラムを作成する
新しい型依存関係ダイアグラムを作成するには、いくつかの方法があります。
ソリューションエクスプローラー、オブジェクトブラウザー、アーキテクチャエクスプローラー、クラスビュー、またはアセンブリエクスプローラーウィンドウで 1 つ以上の項目を選択し、メインメニューで を選択し、選択項目を右クリックして型の依存関係ダイアグラムの表示を選択するか、Control+Shift+Alt+A を押して型の依存関係ダイアグラムの表示を選択します。
この場合、選択したアイテム内で宣言されたすべての型がダイアグラムに追加され、集約、使用箇所、継承の依存関係が視覚化されます。
エディター内の任意の場所にキャレットを置き、メインメニューで これを調べるコマンドを呼び出して ( を選択するか、Control+Shift+Alt+A を押します)、型の依存関係ダイアグラムの表示を選択します。
を選択するか、この場合、ファイルのすべての型がダイアグラムに追加され、集約、使用箇所、継承の依存関係が視覚化されます。
プロジェクト依存関係ダイアグラムで 1 つ以上の項目を選択し、選択範囲を右クリックして、コンテキストメニューで型の依存関係ダイアグラムの表示を選択します。
使用箇所を表示、ベースシンボルへ移動、派生シンボルに移動、次に移動: API の公開などのコマンドの結果リストポップアップで、Alt+Num+ を押すか、ダイアグラムに表示する、 をクリックします。
基本 / 派生シンボルの場合、継承階層の対応する部分がダイアグラムに追加され、継承の依存関係のみが視覚化されます。公開 API の場合、ダイアグラムには、指定された型を返すメソッドを含む型と、型の依存関係のみを返す型が表示されます。
検索結果ウィンドウまたは型階層に表示される結果のリストで、ダイアグラムに表示する をクリックします。
このような場合、すべての使用箇所または階層エントリがダイアグラムに追加され、使用箇所 / 継承の依存関係が視覚化されます。
1 つ以上のプロジェクト参照を選択し、選択範囲を右クリックして、ダイアグラムに使用箇所を表示する を選択します。
この場合、ダイアグラムには参照元プロジェクト内の参照アセンブリの型の使用状況が表示されます。
新しく作成された型依存関係ダイアグラムが階層ウィンドウの新しいタブに表示されます。
ダイアグラムはソリューションと同期されていないことに注意してください。つまり、コード内の型の名前を変更したり削除したりしても、ダイアグラムは変更されません。ダイアグラムが最新であるかどうかを確認するには、右下隅に表示される作成時間を確認できます。ダイアグラムを現在のソリューションの状態と同期するには、ツールバーのリフレッシュ をクリックし、リフレッシュ・型の依存性を選択します。
ダイアグラムの表示を調整する
型依存性ダイアグラムは、次の 2 つの方法でレイアウトできます。
有機レイアウトャー — このオプションは、継承関係に従って型を配置します。基本型は上に移動します。
ビジネスロジックレイヤー — このオプションは、表示されているすべての関係に従って型を配置します。
ダイアグラムの左側にある対応するセレクターを使用して、これらのオプションを切り替えることができます。
ダイアグラムに型を追加または削除した後、または依存関係フィルターを変更した後にダイアグラムのレイアウトを更新するには、ツールバーのリフレッシュ をクリックして、ダイアグラムのレイアウトをリフレッシュを選択します。
ダイアグラムをパンするには、ダイアグラム項目の外側のダイアグラム領域内の任意の場所をクリックし、ハンドカーソル が表示されている間にドラッグします。ズームするには、マウスホイールを使用します。ダイアグラム領域の左上隅にあるコントロールを使用して、ズームやパンを行うこともできます。
ダイアグラムのレイアウトは自動的に計算されますが、必要に応じて変更できます。すべてのアイテムを移動できます。アイテム(型、依存関係リンク、グループ化アイテム)を移動するには、まずクリックして選択し、次にクロスカーソル が表示されている間にクリックしてドラッグします。
必要に応じて、次のいずれかの方法で、ダイアグラムのグループ化項目を折りたたんで展開できます。
グループ化アイテムの左上隅にある下向き矢印をクリックします。折りたたむと、記号が上矢印に変わり、クリックしてアイテムを展開できます。
ダイアグラム内のグループ化項目を選択し、Ctrl + Left Arrow と Ctrl + Right Arrow を押します。
ダイアグラムの項目を追加および削除する
いつでも、表示されたダイアグラムを変更して、必要な型だけが表示されるようにすることができます。
必要に応じて、元に戻す をクリックするか、Ctrl+Z を押すことで、ダイアグラムで行われた変更 (追加 / 削除された項目) を段階的に元に戻すことができます。元に戻すコマンドを元に戻すには、やり直し をクリックするか、Ctrl+Y を押します。
ダイアグラムから型とフォルダーを削除するには、項目をグループ化するときに右上隅の十字を使用するか、項目が選択されているときに Delete を押します。または、保存する項目を選択して右クリックし、コンテキストメニューで選択したアイテムのみを表示するを選択します。複数選択の場合、Ctrl - 項目をクリックします。
ダイアグラムにアイテムを追加する方法はいくつかあります。
型、フォルダー、プロジェクトをソリューションエクスプローラーからダイアグラムにドラッグアンドドロップします。
エディターで型を選択し、選択した型をダイアグラムにドラッグアンドドロップします。
参照されているすべての型を検索して追加するには、型またはグループ化項目を右クリックし、参照されるすべての型を追加するを選択します。グループ化項目 (フォルダーまたはプロジェクト) でこのコマンドを呼び出すと、ReSharper は現在表示されているすべての型の参照されている型を追加します。
ソリューションおよび参照アセンブリから名前で型を検索して追加するには、検索フィールドに名前を入力します。入力時にワイルドカード (アスタリスク
*
など) とキャメルハンプを使用できます。型を選択して Enter を押すか、型をクリックしてダイアグラムに追加します。ドロップダウンで緑色でハイライトされている型は、すでにダイアグラムに追加されています。このような型を選択すると、ダイアグラムのフォーカスがその型に移動します。
詳細ポップアップで、関連する型をクリックして追加するか、すべての使用された型をダイアグラムに追加する、ダイアグラムにすべての用途を追加する、すべての基本型を追加する、直ちに継承するすべての継承を追加するリンクを使用して複数の型を追加します。
特定の型とコンテナーを研究する
ノードが折りたたまれている場合、ノードの上にカーソルを置くと、内部にあるものをすぐに確認できます。表示されるポップアップで、このノード内のダイアグラムに追加された型の数と、このノード内から参照されるすべてのモジュールを確認できます。
必要に応じて、参照されているモジュールをクリックするか、不足しているアイテムを追加をクリックして、このノードから他のアイテムをダイアグラムに追加できます。
任意の型をダブルクリックして、エディターで開くことができます。コンパイルされたアセンブリで型が定義されている場合、コンパイルされたコードに移動するための推奨する方法に従って型が開かれます。
特定の型 (および型間の依存関係 ) に関する詳細情報を取得できます。型の詳細を表示するには、型の上にマウスを置き、詳細ポップアップが表示されたらすぐにマウスポインタをその上に移動します。
型の詳細ポップアップでは、指定された型が使用する型、型が使用される場所、継承された型、コンストラクターパラメーターで使用される型などが表示されます。
型に XML ドキュメントがある場合は、ポップアップに概要も表示されます。
関連する型をクリックしてダイアグラムに追加できます。緑色でハイライトされている型は、すでにダイアグラムに追加されています。そのような型をクリックすると、ダイアグラムのフォーカスがその型に移動します。エディターで型自体を開くには、その名前の横にある宣言に移動をクリックします。
型間の依存関係を調査する
型依存ダイアグラムでは、いくつかの種類の依存関係を視覚化できます。特定の種類の依存関係を表示または非表示にするには、フィルター依存関係 セレクタの対応する項目を使用します。
集約の依存関係 — 型が他の型のコレクションまたはコンテナーである場合に、ある種の依存関係を表示します。
この種の依存関係は緑色の点線で示されています。対応するフィールドの名前が行の横に表示されます。この行の上にマウスを置くとフィールド宣言が表示され、エディター内の対応する場所に移動できます。
依存関係を使用する — ある型の変数、パラメーター、メソッドの戻り値が別の型で使用されている場合、一種の依存関係を表示します。
この種の依存関係は青い線で示され、その太さは相対的な使用回数を反映します。この行の上にマウスを置くと、使用箇所のリストが表示されます。
特定の用途をクリックすると、テキストエディターの対応する場所に移動し、すべての使用箇所を表示リンクをクリックすると、検索結果ウィンドウのすべての用途が開きます。
継承の依存関係 — ある型が別の型を拡張または実装するときに、一種の依存関係を表示します。この種の依存関係は、濃い緑色の線で示されます。この行の上にマウスを置くと継承関係が表示され、エディター内の対応する場所に移動できます。
推移的な継承の依存関係は破線を使用して示されています。そのような線の上にマウスを移動し、ポップアップを使用して依存関係が通過する型を確認し、それらの型をクリックしてダイアグラムに追加できます。
戻り値の型依存性 — ある型に別の型を返すメソッドまたはプロパティがある場合、一種の依存関係を表示します。この種の依存関係は紫色の線で示されます。この行の上にマウスを置くとメンバーのリストが表示され、エディター内の対応する場所に移動できます。
コンストラクターインジェクション — ある型が別の型のコンストラクターパラメーターとして公開される場合、一種の依存関係を表示します。この種の依存関係は茶色の線で示されます。この行の上にマウスを置くとコンストラクターが表示され、エディター内の対応する場所に移動できます。
ダイアグラム上の他の ReSharper 機能を呼び出す
ダイアグラム上のアイテムから移動する
次に移動メニューの項目の利用可能なすべてのナビゲーション宛先を一覧表示するには、Control+Shift+G を押すか、項目を右クリックして次に移動を選択します。
項目が選択されているときに Alt+Shift+L を押すと、ソリューションエクスプローラーで任意の項目(ファイル、フォルダー、プロジェクト)を見つけることができます。
型の詳細ポップアップで検索結果ウィンドウにすべての使用済み型を表示するまたは検索結果ウィンドウにすべての使用箇所を表示するをクリックするか、依存関係リンクのポップアップですべての使用箇所を表示をクリックして、関連する使用箇所をリストすることもできます。
ダイアグラムの項目をリファクタリングする
ダイアグラム上の任意の項目から、使用可能なすべてのリファクタリングを呼び出すことができます。これを行うには、Control+Shift+R を押すか、右クリックしてリファクタリングを選択します。
型を目的のフォルダーにドラッグして、フォルダーに移動リファクタリングを実行することもできます。このリファクタリングは、型を含むファイルをターゲットフォルダーに移動し、名前空間参照を修正し、必要に応じて内部の可視性をパブリックに変更します。
デフォルトでは、この動作は有効になっていることに注意してください。無効にするには、ドラッグ & ドロップで「フォルダーに移動」を許可する をクリックします。
ドラッグ & ドロップによるリファクタリングの後、ダイアグラムは自動的に更新されますが、リファクタリングメニューから呼び出す他のリファクタリングはダイアグラムを更新しないことに注意してください。ダイアグラムのツールバーでリフレッシュ・型の依存性 をクリックする必要があります。
ダイアグラムをファイルにエクスポートする
依存関係を調べている任意の時点で、次のツールバーボタンを使用してダイアグラムをファイルにエクスポートできます。
ダイアグラムのエクスポート をクリックします。開いた「名前を付けて保存」ダイアログで、「ファイルの種類 :」セレクターを使用してダイアグラムをエクスポートする方法を選択できます。
PNG — ダイアグラムの現在のビューを PNG イメージにエクスポートします。
XML 用紙仕様 — 大きなダイアグラムを印刷するために使用できる XPS 形式でダイアグラムをエクスポートします。
GraphML — ダイアグラムを GraphML 形式でエクスポートします。これは、外部分析や ReSharper へのインポートに使用できます。
ダイアグラムのインポート
ReSharper からエクスポートした、または別のツールからエクスポートした GraphML 形式のダイアグラムがある場合は、それをインポートできます。これを行うには、メインメニューから を選択するか、プロジェクトまたは型の依存関係ダイアグラムでダイアグラムのインポート をクリックしてから、ダイアグラムを含む *.graphml ファイルを選択します。
この機能は、次の言語とテクノロジーでサポートされています。
ここで説明する手順と例では、C# の機能の使用について説明します。他の言語の詳細については、言語別 ReSharper セクションの対応するトピックを参照してください。
関連ページ:
アセンブリエクスプローラーウィンドウ
アセンブリエクスプローラーを使用すると、複数のアセンブリを開いて、開いているアセンブリとフォルダーのリストを保持できます。開いているすべてのアセンブリをトラバースして探索できます。アセンブリノードを展開すると、アセンブリ内の名前空間が一覧表示されます。これは、タイプとタイプメンバー、およびアセンブリ参照、リソース、メタデータにさらに展開できます。任意のタイプをダブルクリックして逆コンパイルしたり、シンボルサーバーからソースをフェッチしたりできます(設定によって異なります)。さらに、アセンブリエク...
これを調べる
このコマンドは ReSharper のコード探索とインスペクション機能への近道です: 呼び出し追跡、価値の追跡、型階層を調べる、コードの問題を見つける、型依存関係ダイアグラム、このコマンドは、ソリューションエクスプローラー、ファイル構造ウィンドウ、その他のツールウィンドウから呼び出すことができます。コンテキストに応じて、このショートカットは、そのコンテキストで利用可能なすべてのコード探索機能にアクセスできます。コンテキストで利用可能なコード探索機能を表示するキャレットをエディターのシンボルに配置す...
プロジェクトの依存関係ダイアグラムを調べる
ReSharper を使用すると、ソリューションアーキテクチャを視覚的に表現して、ソリューション内のプロジェクトの依存関係を調べることができます。アーキテクチャビューが新しいエディタータブで開き、プロジェクトの依存関係を視覚的に調べたり、ソリューションの現在の状態を以前に取得したスナップショットと比較したりできます。プロジェクトの依存関係ダイアグラムを開く:ソリューションエクスプローラーでは、1 つまたは複数のプロジェクト、1 つまたは複数のソリューションフォルダー、ソリューションノードを選択...
次に移動: API の公開
このコマンドを使用すると、ある型から、この型のインスタンスを取得できるソリューションおよび参照アセンブリ内のすべての場所 (パブリックフィールドとプロパティ、メソッドの戻り値、出力パラメーターなど) に移動できます。このコマンドは、ソリューションおよび参照されたアセンブリ、または任意のライブラリ型の宣言または使用箇所で次に移動を呼び出すと使用可能になります。このコマンドは、ソリューションエクスプローラー、ファイル構造ウィンドウ、その他のツールウィンドウから呼び出すことができます。コマンドが単一の...
検索結果を分析する
ReSharper のナビゲーション操作と検索操作で複数の結果が得られた場合、これらの結果を検索結果ウィンドウに表示することができます。検索結果ウィンドウは、検索結果を分析するためのさまざまな方法を提供します。デフォルトの動作を変更して、見つかった単一の使用箇所も検索結果ウィンドウに表示されるようにすることができます。これを行うには、ReSharper オプション Alt+R, O のページで使い方: 1 つだけの結果がある場合は .... チェックボックスをオフにします。使用箇所の検索などの一部のア...
型階層を調べる
ReSharper を使用すると、ソリューションおよび参照ライブラリから型の継承階層を調査できます。選択したタイプの基本タイプと継承の両方を確認し、マウスクリックでそれらのいずれかに移動できます。階層内の任意のノードについて、プレビューペインにすべてのメンバーまたは多態的メンバーのみを表示できます。階層を調査するエディターで目的のタイプを見つけるか、ソリューションエクスプローラーでそれを展開します。を押すか、メインメニューからを選択します。または、を押して、ポップアップにコマンド名を入力し、そ...