ContainerGetTypesToRegisterTService Method (IEnumerableAssembly, TypesToRegisterOptions)

Simple Injector
Returns all concrete types that are located in the supplied assemblies and implement or inherit from the supplied TService and match the specified options...

Namespace:  SimpleInjector
Assembly:  SimpleInjector (in SimpleInjector.dll) Version: 5.3.0
Syntax

public IEnumerable<Type> GetTypesToRegister<TService>(
	IEnumerable<Assembly> assemblies,
	TypesToRegisterOptions options
)

Parameters

assemblies
Type: System.Collections.GenericIEnumerableAssembly
A list of assemblies that will be searched.
options
Type: SimpleInjectorTypesToRegisterOptions
The options.

Type Parameters

TService
The base type or interface to find derived types for.

Return Value

Type: IEnumerableType
A collection of types.
Exceptions

ExceptionCondition
ArgumentNullExceptionThrown when one of the arguments contain a null reference.
Remarks

Use this method when you need influence the types that are registered using Register. The Register overloads that take a collection of Assembly objects use this method internally to get the list of types that need to be registered. Instead of calling such overload, you can call an overload that takes a list of Type objects and pass in a filtered result from this GetTypesToRegister method.
C#
var container = new Container();

var assemblies = new[] { typeof(FileLogger).Assembly };
var options = new TypesToRegisterOptions { IncludeGenericTypeDefinitions: true };
var types = container.GetTypesToRegister<ILogger>(assemblies, options)
    .Where(t => t.IsPublic);

container.Collection.Register<ILogger>(types);
This example calls the GetTypesToRegister method to request a list of concrete implementations of the ILogger interface from the assembly of that interface. After that all internal types are filtered out. This list is supplied to the Collection.Register<TService>((IEnumerable<Type>) overload to finish the registration.
See Also

Reference