Posts tagged "roslyn"

Source generators in practice: auto-registering plugins at compile time

Adding a new plugin to this sample app is almost suspiciously easy. Drop a class into the project that implements ICommandPlugin or IStartupPlugin, build, and it just works. No services.AddSingleton<โ€ฆ>() to write. No attribute required. No manifest file. No reflection scan at startup.

That's not magic โ€” it's a C# source generator doing what you'd otherwise do by hand: writing the DI registration code for you, at compile time, into a partial method the rest of the codebase already knows about.

This post walks through why that matters, using the SourceGeneratedDIRegistration sample as a hands-on example. It's small enough to read in an afternoon but hits every interesting corner of a real-world generator.