Class StartupFactory<TStartup>
- Namespace
- Codebelt.Bootstrapper
- Assembly
- Codebelt.Bootstrapper.dll
The default implementation of IStartupFactory<TStartup>.
public class StartupFactory<TStartup> : IStartupFactory<TStartup> where TStartup : StartupRoot
Type Parameters
TStartup
- Inheritance
-
StartupFactory<TStartup>
- Implements
-
IStartupFactory<TStartup>
Examples
The following example shows how StartupFactory<TStartup> activates a StartupRoot partner from the host's IServiceCollection, configuration, and environment, then surfaces it through the IStartupFactory<TStartup>.Instance property. The factory is what UseBootstrapperStartup<TStartup> registers, so consumer code resolves the singleton instead of constructing the startup directly.
using Codebelt.Bootstrapper;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace StartupFactoryDemo;
public class MyStartup : StartupRoot
{
public MyStartup(IConfiguration configuration, IHostEnvironment environment) : base(configuration, environment)
{
}
public override void ConfigureServices(IServiceCollection services)
{
}
}
public static class Program
{
public static void Main()
{
using var host = Host.CreateDefaultBuilder()
.UseBootstrapperStartup<MyStartup>()
.Build();
var factory = (StartupFactory<MyStartup>)host.Services.GetRequiredService<IStartupFactory<MyStartup>>();
var startup = factory.Instance;
}
}
Constructors
StartupFactory(IServiceCollection, IConfiguration, IHostEnvironment)
Initializes a new instance of the StartupFactory<TStartup> class.
public StartupFactory(IServiceCollection services, IConfiguration configuration, IHostEnvironment environment)
Parameters
servicesIServiceCollectionThe dependency injected IServiceCollection.
configurationIConfigurationThe dependency injected IConfiguration.
environmentIHostEnvironmentThe dependency injected IHostEnvironment.
Properties
Instance
Provides access to an instance of the specified TStartup.
public TStartup Instance { get; }
Property Value
- TStartup
A reference to the object of type StartupRoot.
See Also
IStartupFactory<TStartup>