FromAssemblyDescriptor
Selects a set of types from an assembly.
using Castle.Core.Internal;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace Castle.MicroKernel.Registration
{
public class FromAssemblyDescriptor : FromDescriptor
{
protected readonly IEnumerable<Assembly> assemblies;
protected bool nonPublicTypes;
protected internal FromAssemblyDescriptor(Assembly assembly, Predicate<Type> additionalFilters)
: base(additionalFilters)
{
assemblies = new Assembly[1] {
assembly
};
}
protected 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)
{
return assemblies.SelectMany((Assembly a) => a.GetAvailableTypesOrdered(nonPublicTypes));
}
}
}