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

Classes

public static class Classes
Entry point to fluent way to register, by convention, multiple concrete (non-abstract) classes (that include also delegate types). Use static methods on the class to fluently build registration.
using Castle.Core.Internal; using System; using System.Collections.Generic; using System.ComponentModel; using System.Reflection; namespace Castle.MicroKernel.Registration { public static class Classes { public static FromTypesDescriptor From(IEnumerable<Type> types) { return new FromTypesDescriptor(types, Filter); } public static FromTypesDescriptor From(params Type[] types) { return new FromTypesDescriptor(types, Filter); } public static FromAssemblyDescriptor FromAssembly(Assembly assembly) { if ((object)assembly == null) throw new ArgumentNullException("assembly"); return new FromAssemblyDescriptor(assembly, Filter); } public static FromAssemblyDescriptor FromAssemblyContaining(Type type) { if ((object)type == null) throw new ArgumentNullException("type"); return new FromAssemblyDescriptor(type.GetTypeInfo().get_Assembly(), Filter); } public static FromAssemblyDescriptor FromAssemblyContaining<T>() { return FromAssemblyContaining(typeof(T)); } public static FromAssemblyDescriptor FromAssemblyInDirectory(AssemblyFilter filter) { if (filter == null) throw new ArgumentNullException("filter"); return new FromAssemblyDescriptor(ReflectionUtil.GetAssemblies(filter), Filter); } public static FromAssemblyDescriptor FromAssemblyInThisApplication(Assembly rootAssembly) { return new FromAssemblyDescriptor(new HashSet<Assembly>(ReflectionUtil.GetApplicationAssemblies(rootAssembly)), Filter); } public static FromAssemblyDescriptor FromAssemblyNamed(string assemblyName) { return FromAssembly(ReflectionUtil.GetAssemblyNamed(assemblyName)); } [EditorBrowsable(EditorBrowsableState.Never)] internal static bool Filter(Type type) { if (type.GetTypeInfo().get_IsClass()) return !type.GetTypeInfo().get_IsAbstract(); return false; } } }