<PackageReference Include="Castle.Windsor" Version="2.5.3" />

FromAssemblyDescriptor

Selects a set of types from an assembly.
using System; using System.Collections.Generic; using System.Linq; using System.Reflection; namespace Castle.MicroKernel.Registration { public class FromAssemblyDescriptor : FromDescriptor { private readonly IEnumerable<Assembly> assemblies; private bool nonPublicTypes; internal FromAssemblyDescriptor(Assembly assembly) { assemblies = new Assembly[1] { assembly }; } internal FromAssemblyDescriptor(IEnumerable<Assembly> assemblies) { this.assemblies = assemblies; } public FromAssemblyDescriptor IncludeNonPublicTypes() { nonPublicTypes = true; return this; } protected override IEnumerable<Type> SelectedTypes(IKernel kernel) { if (nonPublicTypes) { foreach (Type item in assemblies.SelectMany((Assembly assembly) => assembly.GetTypes())) { yield return item; } } foreach (Type item2 in assemblies.SelectMany((Assembly assembly) => assembly.GetExportedTypes())) { yield return item2; } } } }