Unityについてはよく知っていると思いましたが、次のシナリオは例外ではありませんでした。Unity Containerを使用して、Prismのビューを次のような名前付き登録を持つオブジェクトとして登録しています。
_unityContainer.RegisterType<object, MyDummyView>("MyDummyViewName");
呼び出してビューのインスタンスをリクエストします
object view = _unityContainer.Resolve<object>("MyDummyViewName");
ここまでは順調ですね。システムにバグが見つかりました。ビューのインスタンスを解決するために間違った名前を使用したため、Unityによって例外がスローされると予想していました。
object view = _unityContainer.Resolve<object>("MyWrongDummyViewName");
ResolutionFailedException
ただし、Unityは例外(または)をスローしませんActivationException
。object
上記の呼び出しを行うと、指定された(間違った)名前でビューを登録せずに、新しいを返します。
これはUnityによる正しい動作ですか?ここで例外が発生することを本当に期待していました。Prismの範囲では、これは問題です。間違ったターゲット(ビュー)へのナビゲーション中に例外が発生しないためです。