从 Xamarin Forms 添加到 Ioc.Default.Configuration 服务



我目前正在移动一个mvvmlight应用程序来使用Microsoft.Toolkit.Mvvm并且在大多数情况下,它相对没有痛苦。

不过,我在向 Ioc.Default.ConfigureServices 添加服务时遇到了问题。

在平台特定的代码上,我创建了一个服务集合来处理特定于平台的事情(例如存储,用户设置等),如下所示

Ioc.Default.ConfigureServices(new ServiceCollection().
AddSingleton<ISqliteConnectionFactory, SQLConnection>().
AddSingleton<IFileservice, Storage>().
AddSingleton<IUserSettings, UserSettings>().BuildServiceProvider());

这在iOS和Android上都可以正常工作。但是,在我的ViewModelLocator(来自旧的 mvvmlight 包)中,我无法向服务添加任何内容,因为默认服务集合已经设置

。 创建共享代码后,有没有办法将共享代码中的服务添加到Ioc.Default.ConfigureServices

我找到了一个简单的解决方案。

在平台上创建服务集合,并作为 IServiceCollection 传递给 App 方法。然后在调用BuildServiceProvider方法之前,在应用程序中将其传递给 ViewModelLocatior 和从那里添加的服务。

最新更新