Assembly Scanning with Scrutor & Auto-Registration Conventions
1Concept
Scrutor enhances Microsoft.Extensions.DependencyInjection with assembly scanning conventions, automatically registering classes to matching interfaces (`IType -> Type`) across microservice assemblies.
2Architecture Diagram
Assembly Scan:
Scan(scan => scan.FromAssemblyOf<Program>()
.AddClasses(c => c.AssignableTo<IRepository>())
.AsImplementedInterfaces()
.WithScopedLifetime());3Code Example
C# 13 & .NET 9
using System;
public class ScrutorConceptDemo
{
public static void Main()
{
Console.WriteLine("Scrutor assembly scanning eliminates hundreds of repetitive services.AddScoped<I..., ...>() lines.");
}
}4Expected Output
Scrutor assembly scanning eliminates hundreds of repetitive services.AddScoped<I..., ...>() lines.
5Key Takeaways
- ✓Enforces consistent dependency injection architectural conventions across team codebases.
- ✓Supports Decorator pattern registrations (`services.Decorate<IService, LoggingServiceDecorator>()`).
- ✓Scans assemblies once during application bootstrap.