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

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, Predicate<Type> additionalFilters) : base(additionalFilters) { assemblies = new Assembly[1] { assembly }; } internal FromAssemblyDescriptor(IEnumerable<Assembly> assemblies, Predicate<Type> additionalFilters) : base(additionalFilters) { this.assemblies = assemblies; } public FromAssemblyDescriptor IncludeNonPublicTypes() { nonPublicTypes = true; return this; } protected override IEnumerable<Type> SelectedTypes(IKernel kernel) { if (nonPublicTypes) return assemblies.SelectMany((Assembly assembly) => assembly.GetTypes()); return assemblies.SelectMany((Assembly assembly) => assembly.GetExportedTypes()); } } }