Xamarin.forms Prism Xamarin形成可注射对象
我是Prism的新手,我正在寻找有关viewModel实例化过程中使用Prism(Prism.Forms 6.2.0 Preview 3)和Xamarin Forms时可用对象的一些指导 我看到,在导航到视图/视图模型时,框架提供了INavigationService和IEventAggregator参数值。有关说明,请参见下面的代码Xamarin.forms Prism Xamarin形成可注射对象,xamarin.forms,prism,Xamarin.forms,Prism,我是Prism的新手,我正在寻找有关viewModel实例化过程中使用Prism(Prism.Forms 6.2.0 Preview 3)和Xamarin Forms时可用对象的一些指导 我看到,在导航到视图/视图模型时,框架提供了INavigationService和IEventAggregator参数值。有关说明,请参见下面的代码 public ViewBViewModel(INavigationService navigationService, IEventAggregator ea)
public ViewBViewModel(INavigationService navigationService, IEventAggregator ea)
{
_ea = ea;
_navigationService = navigationService;
}
导航服务和ea对象(如上)由Prism填充
问题:
框架可以在viewModel实例中自动填充哪些其他对象(INavigationService和IEventAggregator之外)?谢谢 看起来这些是为您注册的实现:
- 无活力服务
- IApplicationProvider
- IModuleManager
- 初始值设定项
- 伊文塔格鳄鱼
- IDependencyService
- IPageDialogService
- 伊洛格立面
INavigationService
、IEventAggregator
和IPageDialogService
<代码>iLogger外观看起来很有趣
请参阅文档。您可以解析在容器中注册的任何服务/对象。使用
PrismApplication
中的App.xaml.cs
方法的RegisterTypes()
内的容器注册对象。然后通过注入构造函数来解决它
// Register
Container.RegisterType<IYourObject, YourObject>();
// Resolve
public SomeClass(IYourObject yourObject)
{
_yourObject = yourObject;
}
初始值设定项可以如下所示
public class iOSAppInitializer : IPlatformInitializer
{
public void RegisterTypes (IUnityContainer container)
{
container.RegisterType<IMyService, MyService> ();
}
}
并在需要的地方注射
public SomeClass(IUserDialogs userDialogs)
{
_userDialogs = userDialogs;
}
PS:如果第三方插件没有公开抽象,您可以包装一个静态文件,并使用它来注册和解析。感谢您提供了指向构造函数代码和其他注入项的链接。我还熟悉INavigationService、iVentaggregator和IPageDialogService。我会做一些额外的研究,这些其他注射对象和更新我的答案后,如果我发现好的信息。我想给你一分,但我的水平太低了。再次感谢。
RegisterInstance<IUserDialogs>(UserDialogs.Instance);
public SomeClass(IUserDialogs userDialogs)
{
_userDialogs = userDialogs;
}