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: 5.3.0

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


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

Type Parameters

The base type or interface to find derived types for.

Return Value

Type: IEnumerableType
A collection of types.

ArgumentNullExceptionThrown when one of the arguments contain a null reference.

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.
var container = new Container();

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

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