Add contextual commands

This commit is contained in:
TheXamlGuy
2024-05-19 14:18:08 +01:00
parent 1b60711ec4
commit 41c7f71a9d
13 changed files with 107 additions and 68 deletions
+4 -3
View File
@@ -4,13 +4,14 @@ using System.Reflection;
namespace Toolkit.Foundation;
public class Publisher(IHandlerProvider handlerProvider,
IServiceProvider provider,
IServiceFactory serviceFactory,
IServiceProvider serviceProvider,
IDispatcher dispatcher) :
IPublisher
{
public void Publish<TMessage>(object key)
where TMessage : new() =>
Publish(new TMessage(), async args => await args(), key);
Publish(serviceFactory.Create<TMessage>() ?? new TMessage(), async args => await args(), key);
public void Publish<TMessage>(TMessage message)
where TMessage : notnull =>
@@ -28,7 +29,7 @@ public class Publisher(IHandlerProvider handlerProvider,
Type handlerType = typeof(NotificationHandlerWrapper<>)
.MakeGenericType(notificationType);
List<object?> handlers = provider.GetServices(handlerType).ToList();
List<object?> handlers = serviceProvider.GetServices(handlerType).ToList();
foreach (object? handler in handlerProvider.Get(notificationType, key))
{
handlers.Add(handler);