6. 使用公共库

要使用已创建的.NET标准库BooksLib和Framework,可以在Xamrin.Forms解决方案中添加已有项目。这些项目需要从每个Xamarin项目中引用。

还需要添加NuGet包Microsoft.Extensions.DependencyInjection和Microsoft.Extensions.Configuration。ILogger接口由服务和视图模型使用

Xamarin还包括一个依赖注入容器,它可以从DependencyService类中访问。DependencyService.Register注册一个服务,而DependencyService.Get从容器中返回服务。但是,因为前面章节都在使用.NET Core DI 容器 Microsoft.Extensions.DependencyInjection,它也与BooksAppX一起使用。

可以实例化依赖注入容器,并可以在共享的App类中注册服务。对于具有特定于UWP实现的服务,现在需要完成特定于Xamarin的实现。需要Xamarin实现、特定于平台的服务是显示消息对话框的IMessageService,和在页面之间导航的INavigationService: 

        public App()
        {
            InitializeComponent();

            MainPage = new MainPage();
        }
        private void RegisterServices()
        {
            var service = new ServiceCollection();
            service.AddSingleton<IBooksRepository, BooksSampleRepository>();
            service.AddSingleton<IItemsService<Book>,BooksService>();
            service.AddTransient<BooksViewModel>();
            service.AddTransient<BookDetailViewModel>();
            //service.AddSingleton<IMessageService, XamarinMessageService>();
            service.AddSingleton<>(INavigationService, XamarinNavigationService);
            service.AddSingleton<XamarinInitializeNavigationService>();
            service.AddLogging();
            AppServices = service.BuildServiceProvider();
        }
        public IServiceProvider AppServices { get; private set; }

IMessageService和INavigationService的实现将在"导航"一节中讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值