Inner scope navigation

This commit is contained in:
TheXamlGuy
2024-02-13 22:11:29 +00:00
parent 6e738becd4
commit 9fe2317c4f
30 changed files with 189 additions and 130 deletions
+13 -5
View File
@@ -1,4 +1,5 @@
using Microsoft.Extensions.Configuration;
using Hyperbar.UI.Windows;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System.Reflection;
@@ -31,13 +32,14 @@ public class WidgetBuilder :
new ServiceFactory((type, parameters) =>
ActivatorUtilities.CreateInstance(provider, type, parameters!)));
services.AddScoped<SubscriptionCollection>();
services.AddScoped<ISubscriptionManager, SubscriptionManager>();
services.AddSingleton<SubscriptionCollection>();
services.AddSingleton<ISubscriptionManager, SubscriptionManager>();
services.AddTransient<ISubscriber, Subscriber>();
services.AddTransient<IPublisher, Publisher>();
services.AddScoped<IMediator, Mediator>();
services.AddScoped<IDisposer, Disposer>();
services.AddTransient<IMediator, Mediator>();
services.AddSingleton<IDisposer, Disposer>();
services.AddHandler<WidgetAvailabilityChangedHandler>();
services.AddValueChangedNotification<WidgetConfiguration,
@@ -45,6 +47,12 @@ public class WidgetBuilder :
{
args.Value = config.IsEnabled;
});
services.AddTransient<INavigationProvider, NavigationProvider>();
services.AddSingleton<NavigationTargetCollection>();
services.AddTransient<INavigationTargetProvider, NavigationTargetProvider>();
services.AddHandler<NavigateHandler>();
});
}
@@ -17,6 +17,7 @@ public class WidgetExtensionHandler(IServiceProvider provider,
{
args.AddSingleton(widgetExtension.Assembly);
args.AddTransient(_ => provider.GetRequiredService<IProxyService<IPublisher>>());
args.AddTransient(_ => provider.GetRequiredService<IProxyService<INavigationTargetProvider>>());
args.AddRange(typedServices.Services);
});