我正在使用prism 7作为我的新xamarin表单应用程序。我已经查看了this文档。
我有几个问题:
应用程序启动后,我注册的DI接口很少。我们可以在app.xaml.cs中使用IContainerRegistry
进行注册,但是如果我们想在其他页面中注册或解析,有没有其他办法可以保存IContainerRegistry
和{{1}来自app.xaml.cs的实例并在我们想要的地方使用它?
要注册类型,语法为:
IContainerRegistry
但是我们如何注册单身人士呢? 我看到几个例子,但我真的不明白怎么做?有人可以举个例子吗?
更新
要注册单身人士,
语法似乎是
ContainerRegistry.RegisterInstance<ITextService>(new TextService());
但是如果我们只是在没有创建实例的情况下传递类型(在本例中是EmptyLogger的实例),我们如何正确地注册它们呢?
答案 0 :(得分:2)
要注册类型,语法为:
ContainerRegistry.RegisterInstance<ITextService>(new TextService());
这会注册一个不是类型btw的实例来注册类型do ContainerRegistry.Register<IAnInterface, SomeImplementation>();
但我们如何注册单身人士?
ContainerRegistry.RegisterSingleton<ITextService, TextService>();
执行此操作,顺便说一句,实例本质上是一个单例(因为di容器总是必须注入您注册的一个实例,因为它不能自己创建新实例)
有什么方法可以将
IContainerRegistry
和IContainerRegistry
实例从app.xaml.cs
保存并在任何我们想要的地方使用它吗?
我建议在一个地方注册所有内容,而不是在整个项目中散布注册。但如果你确定了,你可以在任何地方注入IContainerRegistry
并注册你的东西。