Prism で MEF の奇妙な動作に遭遇しましたが、これについては説明できません。あまり満足していない方法を見つけたので、何が原因なのかを本当に理解したいと思います.
シェル ウィンドウ クラスをPartCreationPolicy
of で宣言しましたNonShared
。そして、シェルの新しいインスタンスを作成するためにCompositionContainer.GetExportedValue<>()
my の関数を使用しようとしています。MefBootstrapper
奇妙なことContainer.GetExportedValue<>()
に、シェルが作成される前に呼び出すShell
と、呼び出すたびに type の新しいオブジェクトが取得されます。ただし、シェルが初期化されるとContainer.GetExportedValue<>()
、シェルの同じインスタンスを返す呼び出しが繰り返されます。
シェルの初期化により、シェルのエクスポートが共有として再登録されるようです。
ただし、明示的にこれを達成しようとするブートストラップ コードの呼び出しは見当たりません。
誰でも説明できますか:
- この副作用を持つアクションは何ですか
NonShared
MEF/ServiceLocator を使用して複数のシェルを作成できるように、(可能であれば) 動作を復元する方法。
乾杯、
マーク