Startup Services
What are they?
Startup services are a great way to hook events IMMEDIATELY after the dependency injection container has been built. They support full dependency injection like other services.
The startup of these services is NOT asynchronous for a reason - the startup of your application is not asynchronous. If you go async, the platform is not waiting for you to finish.
Setup
namespace Whatever;
public class MyStartupService : Shiny.IShinyStartupTask{ public void Start() { // great to hook global events here (ie. Logout, delete local database?) }}
And registering
using Shiny; // to emerge the extension methods
// wherever you register your services with the service collectionServiceCollection services;services.AddShinyService<MyStartupService>(); // registers as a singleton
services.BuildServiceProvider(); // the Start method will basically execute right here