内部で MEF を使用してIWpfTextView
.
VsPackage が作成されると、すべての依存関係が登録されます。IWpfTextViewCreationListener
後でMEF を介して が作成されたときに、これらの依存関係を後で解決するにはどうすればよいですか? コンテナをシングルトンとして公開してアクセスする必要がありますか、それとももっと良い方法がありますか?
編集これが私が達成しようとしていることです。VsPackage が作成されると、Windsor はすべての依存関係を配線します。
私のアドインは「Editor Adornment」タイプの拡張性であるため、ソリューションが読み込まれ、コード ファイルが開かれた後、クラスへのコールバックを取得します。このコールバックは、継承IWpfTextViewCreationListener
(および MEF 経由でエクスポート[Export(typeof(IWpfTextViewCreationListener))]
(Visual Studio によって自動的に行われます)) されます。
これは別のコンテキストで発生します。つまり、このクラスから VsPackage にアクセスできず、必要な依存関係が初期化されません。したがって、この時点では、Windsor によって以前に配線された依存関係をどのように取得できるかわかりません。
これがより明確になることを願っています。
(たとえば、 File | New Project | Visual C# | Extensibility | Text Editor Adornmentを使用して独自の拡張プロジェクトを作成してみて、どのように (いつ)TextAdornment1Factory
が作成されるかを確認できます。