From b66101547e0bff91a04e37fdb6c468749ddbfcb1 Mon Sep 17 00:00:00 2001 From: Tomasz Cielecki Date: Wed, 24 Apr 2024 08:24:53 +0200 Subject: [PATCH] Add core services --- .../MvvmCrossInfrastructureExtensions.cs | 27 +++++++++++++++++++ MvvmCross/Hosting/MvxHostBuilder.cs | 7 +++++ 2 files changed, 34 insertions(+) create mode 100644 MvvmCross/Extensions/MvvmCrossInfrastructureExtensions.cs diff --git a/MvvmCross/Extensions/MvvmCrossInfrastructureExtensions.cs b/MvvmCross/Extensions/MvvmCrossInfrastructureExtensions.cs new file mode 100644 index 0000000000..61c9acd59e --- /dev/null +++ b/MvvmCross/Extensions/MvvmCrossInfrastructureExtensions.cs @@ -0,0 +1,27 @@ +using Microsoft.Extensions.DependencyInjection; +using MvvmCross.Commands; +using MvvmCross.Core; +using MvvmCross.Navigation; +using MvvmCross.ViewModels; + +namespace MvvmCross.Extensions; + +public static class MvvmCrossInfrastructureExtensions +{ + public static IServiceCollection AddCoreServices(this IServiceCollection services) + { + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + + services.AddTransient(); + return services; + } +} diff --git a/MvvmCross/Hosting/MvxHostBuilder.cs b/MvvmCross/Hosting/MvxHostBuilder.cs index d8adaebf15..4e12ae5abe 100644 --- a/MvvmCross/Hosting/MvxHostBuilder.cs +++ b/MvvmCross/Hosting/MvxHostBuilder.cs @@ -2,6 +2,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; +using MvvmCross.Extensions; namespace MvvmCross.Hosting; @@ -21,6 +22,7 @@ public class MvxHostBuilder : IMvxHostBuilder public virtual IMvxHost Build() { ConfigureDefaultNullLogging(Services); + AddMvvmCrossServices(Services); var serviceCollection = ConfigureContainer(Services); var loggerFactory = serviceCollection.GetRequiredService(); @@ -30,6 +32,11 @@ public virtual IMvxHost Build() return host; } + + protected virtual void AddMvvmCrossServices(IServiceCollection services) + { + services.AddCoreServices(); + } private static void ConfigureDefaultNullLogging(IServiceCollection services) {