Skip to content

Commit

Permalink
Add core services
Browse files Browse the repository at this point in the history
  • Loading branch information
Cheesebaron committed Apr 24, 2024
1 parent a3103e4 commit b661015
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
27 changes: 27 additions & 0 deletions 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<IMvxSettings, MvxSettings>();
services.AddSingleton<IMvxStringToTypeParser, MvxStringToTypeParser>();
services.AddSingleton<IMvxViewModelLoader, MvxViewModelLoader>();
services.AddSingleton<IMvxNavigationService, MvxNavigationService>();
services.AddSingleton<MvxViewModelByNameLookup>();
services.AddSingleton<IMvxViewModelTypeFinder, MvxViewModelViewTypeFinder>();
services.AddSingleton<IMvxTypeToTypeLookupBuilder, MvxViewModelViewLookupBuilder>();
services.AddSingleton<IMvxCommandCollectionBuilder, MvxCommandCollectionBuilder>();
services.AddSingleton<IMvxNavigationSerializer, MvxStringDictionaryNavigationSerializer>();
services.AddSingleton<IMvxChildViewModelCache, MvxChildViewModelCache>();

services.AddTransient<IMvxCommandHelper, MvxWeakCommandHelper>();
return services;
}
}
7 changes: 7 additions & 0 deletions MvvmCross/Hosting/MvxHostBuilder.cs
Expand Up @@ -2,6 +2,7 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using MvvmCross.Extensions;

namespace MvvmCross.Hosting;

Expand All @@ -21,6 +22,7 @@ public class MvxHostBuilder : IMvxHostBuilder
public virtual IMvxHost Build()
{
ConfigureDefaultNullLogging(Services);
AddMvvmCrossServices(Services);
var serviceCollection = ConfigureContainer(Services);
var loggerFactory = serviceCollection.GetRequiredService<ILoggerFactory>();

Expand All @@ -30,6 +32,11 @@ public virtual IMvxHost Build()

return host;
}

protected virtual void AddMvvmCrossServices(IServiceCollection services)
{
services.AddCoreServices();
}

private static void ConfigureDefaultNullLogging(IServiceCollection services)
{
Expand Down

0 comments on commit b661015

Please sign in to comment.