API Reference: MoreContainers

Package: D20Tek.Spectre.Console.Extensions.MoreContainers Namespace: D20Tek.Spectre.Console.Extensions.Injection (builder extensions in D20Tek.Spectre.Console.Extensions)

This document covers ITypeRegistrar/ITypeResolver support for Autofac, Lamar, LightInject, and Ninject, along with the builder extensions that select each container.

Contents

CommandAppBuilderExtensions

Extension methods that configure a specific container on a CommandAppBuilder.

Member Signature Description
WithNinjectContainer static CommandAppBuilder WithNinjectContainer(this CommandAppBuilder builder, StandardKernel? container = null) Configures the Ninject registrar, creating a new StandardKernel when none is provided.
WithAutofacContainer static CommandAppBuilder WithAutofacContainer(this CommandAppBuilder builder, ContainerBuilder? container = null) Configures the Autofac registrar, creating a new ContainerBuilder when none is provided.
WithLightInjectContainer static CommandAppBuilder WithLightInjectContainer(this CommandAppBuilder builder, ServiceContainer? container = null, ServiceLifetime lifetime = ServiceLifetime.Singleton) Configures the LightInject registrar with an optional container and default lifetime.
WithLamarContainer static CommandAppBuilder WithLamarContainer(this CommandAppBuilder builder, ServiceRegistry? serviceRegistry = null, ServiceLifetime lifetime = ServiceLifetime.Singleton) Configures the Lamar registrar with an optional service registry and default lifetime.

Registrars and Resolvers

Each container has a registrar (ITypeRegistrar) and resolver (ITypeResolver) that bridge Spectre.Console.Cli to that framework. They are configured for you by the builder extensions above; you typically do not construct them directly.

Container Registrar Resolver
Ninject NinjectTypeRegistrar(StandardKernel kernel) NinjectTypeResolver(StandardKernel provider)
Autofac AutofacTypeRegistrar(ContainerBuilder container) AutofacTypeResolver(ILifetimeScope scope)
LightInject LightInjectTypeRegistrar(ServiceContainer container) LightInjectTypeResolver(IServiceFactory container)
Lamar LamarTypeRegistrar(ServiceRegistry registry, ServiceLifetime lifetime = ServiceLifetime.Singleton) (also implements ISupportLifetimes) LamarTypeResolver(Container container)

Each registrar implements the standard ITypeRegistrar members: Build, Register, RegisterInstance, and RegisterLazy. Each resolver implements Resolve and, where applicable, IDisposable.Dispose.

An unhandled error has occurred. Reload 🗙