ContainerGetTypesToRegisterTService Method (IEnumerableAssembly)

Simple Injector
Returns all concrete non-generic types that are located in the supplied assemblies and implement or inherit from the supplied TService.

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

public IEnumerable<Type> GetTypesToRegister<TService>(
	IEnumerable<Assembly> assemblies
)

Parameters

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

Type Parameters

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

Return Value

Type: IEnumerableType
A collection of types.

Return Value

Type: IEnumerableType
A collection of types.
Exceptions

ExceptionCondition
ArgumentNullExceptionThrown when one of the arguments contain a null reference (Nothing in VB).
Remarks

Use this method when you need influence the types that are registered using Container.Collections.Register. The Collections.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();

IEnumerable<Assembly> assemblies = new[] { typeof(ILogger).Assembly };
var types = container.GetTypesToRegister<ILogger>(assemblies)
    .Where(type => type.IsPublic);

container.Collections.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 Collections.Register<TService>(IEnumerable<Type>) overload to finish the registration.
See Also

Reference