我以为我对 Unity 了解很多,但以下场景我没有例外。我正在使用 Unity Container 将我的 Prism 视图注册为具有命名注册的对象,如下所示:
_unityContainer.RegisterType<object, MyDummyView>("MyDummyViewName");
我通过调用请求视图实例
object view = _unityContainer.Resolve<object>("MyDummyViewName");
到目前为止,一切都很好。现在我在我的系统中发现了一个错误,因为我使用了错误的名称来解析视图的实例,并且我预计 Unity 会抛出一个异常。
object view = _unityContainer.Resolve<object>("MyWrongDummyViewName");
但是 Unity 不会抛出任何异常(例如ResolutionFailedException
or ActivationException
)。当我执行上面的调用时,它会返回一个 new object
,而不会使用给定的(错误的)名称注册任何视图。
这是 Unity 的正确行为吗?我真的希望在这里得到一个例外。在 Prism 的范围内,这是一个问题,因为在导航到错误的目标(视图)期间我不会遇到任何异常。