BTI*_*oug 1 prism xamarin.forms
我只是升级了 Xamarin Forms 和 Prism,现在我的 app.xaml.cs 文件中有一堆错误,用于所有 Unity 注册。此外,正如 Brian 在更新说明中所述,所有 Unity 命名空间也已损坏。对于下面的小片段,新的 RegisterTypes 方法应该是什么样的,容器类型列表中的 1 应该是什么样的?
这个片段曾经有效:
protected override void RegisterTypes()
{
Container.RegisterType<ISession, SQLiteSession>(new ContainerControlledLifetimeManager());
Container.RegisterType<IConfiguration, Configuration>();
Container.RegisterType<IAuthenticationRestClient, AuthenticationRestClient>();
Run Code Online (Sandbox Code Playgroud)
现在看起来它需要看起来像:
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterType<ISession, SQLiteSession>(new ContainerControlledLifetimeManager());
Container.RegisterType<IConfiguration, Configuration>();
Container.RegisterType<IAuthenticationRestClient, AuthenticationRestClient>();
Run Code Online (Sandbox Code Playgroud)
您将 IContainerRegistry 与 Unity Container 混淆了。它们是分开的东西。IContainerRegistry 是 Prism 7 中的 IOC 抽象,这意味着它不依赖于 Unity API。但是,您仍然可以在需要时访问底层容器。您的原始代码段将如下所示:
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterSingleton<ISession, SQLiteSession>();
containerRegistry.Register<IConfiguration, Configuration>();
containerRegistry.Register<IAuthenticationRestClient, AuthenticationRestClient>();
// You can also access the Unity Container by doing:
var unityContainer = containerRegistry.GetContainer();
}
Run Code Online (Sandbox Code Playgroud)
您可以在 GitHub 上查看IContainerRegistry的完整定义。
| 归档时间: |
|
| 查看次数: |
1296 次 |
| 最近记录: |