Skip to content

Commit f84aaaf

Browse files
committed
Remove AddHandler from public API
1 parent b801e95 commit f84aaaf

3 files changed

Lines changed: 18 additions & 18 deletions

File tree

src/Foundatio.Mediator.Abstractions/MediatorExtensions.cs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,6 @@ public static IServiceCollection AddMediator(this IServiceCollection services, A
5757
return services.AddMediator(configurationBuilder.Build());
5858
}
5959

60-
/// <summary>
61-
/// Adds a handler registration to the service collection.
62-
/// </summary>
63-
/// <param name="services"></param>
64-
/// <param name="registration"></param>
65-
/// <returns></returns>
66-
public static IServiceCollection AddHandler(this IServiceCollection services, HandlerRegistration registration)
67-
{
68-
services.AddKeyedSingleton(registration.MessageTypeName, registration);
69-
services.AddSingleton(registration);
70-
return services;
71-
}
72-
7360
private static bool IsAssemblyMarkedWithFoundatioHandlerModule(Assembly assembly)
7461
{
7562
return assembly.GetCustomAttributes(typeof(FoundatioHandlerModuleAttribute), false).Any();

src/Foundatio.Mediator/DIRegistrationGenerator.cs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,7 @@ public static void Execute(SourceProductionContext context, List<HandlerInfo> ha
5858
source.AppendLine($"services.{lifetimeMethod}<{handler.FullName}>();");
5959
}
6060

61-
// Use reflection FullName so nested types resolve with '+' and match runtime Type.FullName keys
62-
source.AppendLine($"services.AddHandler(new HandlerRegistration(");
61+
source.AppendLine($"AddMediatorHandler(services, new HandlerRegistration(");
6362
source.AppendLine($" MessageTypeKey.Get(typeof({handler.MessageType.FullName})),");
6463
source.AppendLine($" \"{handlerClassName}\",");
6564

@@ -79,8 +78,20 @@ public static void Execute(SourceProductionContext context, List<HandlerInfo> ha
7978
source.AppendLine();
8079
}
8180

82-
source.DecrementIndent().DecrementIndent();
83-
source.AppendLine(" }");
81+
source.DecrementIndent();
82+
source.AppendLine("}");
83+
84+
source.AppendLine()
85+
.AppendLines($$"""
86+
[DebuggerStepThrough]
87+
private static void AddMediatorHandler(IServiceCollection services, HandlerRegistration registration)
88+
{
89+
services.AddKeyedSingleton(registration.MessageTypeName, registration);
90+
services.AddSingleton(registration);
91+
}
92+
""");
93+
94+
source.DecrementIndent();
8495
source.AppendLine("}");
8596

8697
context.AddSource($"{className}.g.cs", source.ToString());

tests/Foundatio.Mediator.Tests/GenericMessageTests.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,9 @@ public void RegistersFriendlyGenericKey()
7070
public record Order(string Id);
7171
public record EntityAction<T>(T Entity) : IQuery;
7272
73-
public class OrderActionHandler {
73+
public class SomeBaseClass<T> { }
74+
75+
public class OrderActionHandler : SomeBaseClass<Order> {
7476
public Task<Result> HandleAsync(EntityAction<Order> action, CancellationToken ct) => Task.FromResult(Result.Success());
7577
}
7678
""";

0 commit comments

Comments
 (0)