VContainer Diagnostics Window
オブジェクトの依存グラフを確認するための、Unityのエディタツールが同梱されています。
- 真ん中のペインでは、DIコンテナに登録されたオブジェクトの依存ツリーを確認することができます。
- ここで特定の行を選択すると、該当のRegistrationについて詳細が他のペインに表示されます。
- 下のペインでは、選択された行について
Register*
が行われたコードの場所を確認できます。青いリンクテキストをクリックすると、該当のファイル を開くことができます。 - 右ペインでは、選択された行について、コンテナから取り出されたインスタンスの詳細を確認できます。
- これはインスタンスの プロパティ/フィールドの
ToString()
のリストです。ここにより意味のある情報を表示する方法のひとつは、ToString()のオーバライドすることです。
- これはインスタンスの プロパティ/フィールドの
この機能を有効にするには:
-
VContainerSettings
を作成します。
- ツールバーから
Assets -> Create -> VContainer -> VContainer Settings
-
- VContainerSettings のインスペクタから、 Enable Diagnostics のチェックを有効にします。
-
Window -> VContainer Diagnostics
を選択すると、上のスクリーンショットのようなウインドウが開きます。
危険
"Enable Diagnostics" が有効の場合、パフォーマンスが著しく低下します。(GCアロケーションも増加します)。この機能は開発中のみ有効にすることをおすすめします。
備考
VContainerSettings を作成すると、自動的に プロジェクトの Preload Assets に登録されます。
VContainerSettingsが読み込まれない場合、Project Settings の Player セクションにある Preload Assets に VContainerSettingsが含まれているか確認して下さい。
DiagnosticsInfo
"Enable Diagnostics" が有効のとき、内部的にデバッグ情報の収集が行わています。 このデータを直接使用するための以下のようなインターフェイスも公開されています。
DiagnosticsContext.GetDiagnosticsInfos()
returns list of debug information for all registered instances.IObjectResolver.Diagnostics?.GetDiagnosticsInfos()
returns list of information for specific container.