ApplicationsΒΆ
Takes the kind of approach used in composing ASP.NET Core apps and makes it generic to all .NET Core (nothing ASP.NET-specific.)
- Features:
- ServiceCollection
- Components can be
- Extensibility
- Override AppHost to replace - IServiceCollection NewServiceCollection
- Usage
- Create an AppHost
- Add components via Add()
- IsInitialized will be true
- Initialize()
- Bootstrap()
- IReadHandle components will be replaced with their targets
- ITemplate components will be replaced with instantiations
- IConfigures<IAppHost> components will configure the AppHost
- IConfigures<IServiceCollection> components will configure services
- ServiceProvider will be built from ServicesCollections (uses Microsoft.Extensions.DependencyInjection by default, but overridable)
- IRequiresServices components will have ServiceProvider injected
- Properties marked [Dependency], or specified by IHasDependencyProperties will be injected from IServiceProvider
- IInitializable components will be initialized - Initialize will be repeatedly invoked on components until they all return true. (If no progress is made, an exception is thrown.)