Composition
Discovery
public class DiscoveryAspect : IAspect, IAssemblySourceProvider
{
private readonly CompositionOptions _compositionOptions;
private readonly Type _rootType;
public DiscoveryAspect(CompositionOptions compositionOptions, Type rootType = null)
{
_compositionOptions = compositionOptions;
_rootType = rootType;
}
public void Initialize()
{
_assemblies = GetAssemblies();
}
public string Id => "Discovery";
public string[] Dependencies => new[] { "Platform" };
private Assembly[] _assemblies;
public IEnumerable<Assembly> Assemblies => _assemblies ?? (_assemblies = GetAssemblies());
private Assembly[] GetAssemblies()
{
var assembliesResolver = new AssembliesResolver(
new CustomAssemblySourceProvider(
PlatformProvider.Current.GetAbsolutePath(_compositionOptions.RelativePath),
_compositionOptions.Prefixes), _rootType);
return ((IAssembliesReadOnlyResolver) assembliesResolver).GetAssemblies().ToArray();
}
}Modularity(again)
Last updated