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

FromAssembly

public class FromAssembly
using Castle.Core.Internal; using Castle.MicroKernel.Registration; using System; using System.Collections.Generic; using System.Reflection; using System.Runtime.CompilerServices; namespace Castle.Windsor.Installer { public class FromAssembly { public static IWindsorInstaller Containing(Type type) { if (type == (Type)null) throw new ArgumentNullException("type"); Assembly assembly = type.Assembly; return Instance(assembly); } public static IWindsorInstaller Containing(Type type, InstallerFactory installerFactory) { if (type == (Type)null) throw new ArgumentNullException("type"); Assembly assembly = type.Assembly; return Instance(assembly, installerFactory); } public static IWindsorInstaller Containing<T>() { return Containing(typeof(T)); } public static IWindsorInstaller Containing<T>(InstallerFactory installerFactory) { return Containing(typeof(T), installerFactory); } public static IWindsorInstaller InDirectory(AssemblyFilter filter) { return InDirectory(filter, new InstallerFactory()); } public static IWindsorInstaller InDirectory(AssemblyFilter filter, InstallerFactory installerFactory) { HashSet<Assembly> hashSet = new HashSet<Assembly>(ReflectionUtil.GetAssemblies(filter)); CompositeInstaller compositeInstaller = new CompositeInstaller(); foreach (Assembly item in hashSet) { compositeInstaller.Add(Instance(item, installerFactory)); } return compositeInstaller; } [MethodImpl(MethodImplOptions.NoInlining)] public static IWindsorInstaller InThisApplication() { Assembly callingAssembly = Assembly.GetCallingAssembly(); return ApplicationAssemblies(callingAssembly, new InstallerFactory()); } [MethodImpl(MethodImplOptions.NoInlining)] public static IWindsorInstaller InThisApplication(InstallerFactory installerFactory) { Assembly callingAssembly = Assembly.GetCallingAssembly(); return ApplicationAssemblies(callingAssembly, installerFactory); } public static IWindsorInstaller Instance(Assembly assembly) { return Instance(assembly, new InstallerFactory()); } public static IWindsorInstaller Instance(Assembly assembly, InstallerFactory installerFactory) { return new AssemblyInstaller(assembly, installerFactory); } public static IWindsorInstaller Named(string assemblyName) { Assembly assemblyNamed = ReflectionUtil.GetAssemblyNamed(assemblyName); return Instance(assemblyNamed); } public static IWindsorInstaller Named(string assemblyName, InstallerFactory installerFactory) { Assembly assemblyNamed = ReflectionUtil.GetAssemblyNamed(assemblyName); return Instance(assemblyNamed, installerFactory); } [MethodImpl(MethodImplOptions.NoInlining)] public static IWindsorInstaller This() { return Instance(Assembly.GetCallingAssembly()); } [MethodImpl(MethodImplOptions.NoInlining)] public static IWindsorInstaller This(InstallerFactory installerFactory) { return Instance(Assembly.GetCallingAssembly(), installerFactory); } private static IWindsorInstaller ApplicationAssemblies(Assembly rootAssembly, InstallerFactory installerFactory) { HashSet<Assembly> hashSet = new HashSet<Assembly>(ReflectionUtil.GetApplicationAssemblies(rootAssembly)); CompositeInstaller compositeInstaller = new CompositeInstaller(); foreach (Assembly item in hashSet) { compositeInstaller.Add(Instance(item, installerFactory)); } return compositeInstaller; } } }