Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
增加统一性';Prism Xamarin.Forms中的s诊断扩展_Xamarin.forms_Prism_Unity Container - Fatal编程技术网

增加统一性';Prism Xamarin.Forms中的s诊断扩展

增加统一性';Prism Xamarin.Forms中的s诊断扩展,xamarin.forms,prism,unity-container,Xamarin.forms,Prism,Unity Container,我得到一个Unity.ResolutionFailedException,它提示我可以通过添加诊断扩展来获得更多信息: Unity.ResolutionFailedException:有关详细信息,请添加诊断扩展:Container.AddExtension(新诊断()) 我尝试在App.xaml.cs的构造函数和RegisterTypes中添加扩展,但两种方法都不起作用(相同的消息) public应用程序(IPlatformInitializer初始值设定项) :base(初始值设定项) {

我得到一个Unity.ResolutionFailedException,它提示我可以通过添加诊断扩展来获得更多信息:

Unity.ResolutionFailedException:有关详细信息,请添加诊断扩展:Container.AddExtension(新诊断())

我尝试在App.xaml.cs的构造函数和RegisterTypes中添加扩展,但两种方法都不起作用(相同的消息)

public应用程序(IPlatformInitializer初始值设定项)
:base(初始值设定项)
{
this.Container.GetContainer().AddExtension(新诊断());
}
受保护的覆盖无效注册表类型(IContainerRegistry containerRegistry)
{
containerRegistry.GetContainer().AddExtension(新诊断());
...
关于这一点,它指出:

重要的 扩展方法在IUnityContainer接口上不起作用。它仅在UnityContainer本身上可用

这可以解释我看到的行为。那么是否可以添加诊断扩展

那么,是否可以添加诊断扩展

您可以直接转换到
UnityContainer

using Prism.Unity; // for the GetContainer extension method

((UnityContainer)containerRegistry.GetContainer()).AddExtension(new Diagnostic());
或者,重写
prismaplication.CreateContainerExtension
,并直接将扩展添加到容器中:

protected override IContainerExtension CreateContainerExtension()
{
    var container = new UnityContainer();
    container.AddExtension( new Diagnostic() );
    return new UnityContainerExtension( container );
}

转换到UnityContainer似乎很简单,但我仍然得到相同的异常和语句来添加诊断扩展,而没有其他信息。这是您在项目中所做的吗?不要使用第一种方法…显示的第二种方法将是@Adam希望做的正确方法。事实上,我使用的是旧版本的prism不会试图隐藏容器。我的客户端受监管,无论如何都无法轻松更新任何第三方库。如果我对您答案的编辑(删除错误的位)获得批准,那就太好了,这样我就可以将其标记为解决方案。@Adam我看不到编辑,但我很乐意批准。您想删除什么?