public DiscoverAndLoadPackages ( System.Action onAssembliesScanned, bool runActivators = true ) : void | ||
onAssembliesScanned | System.Action | |
runActivators | bool | |
return | void |
public void DiscoverAndLoadPackages(Action onAssembliesScanned, bool runActivators = true)
{
IEnumerable<IPackageInfo> allPackages = FindAllPackages();
//orders _packages
analyzePackageDependenciesAndOrder(allPackages);
loadAssemblies(_packages, onAssembliesScanned);
List<IActivator> discoveredActivators = collectAllActivatorsFromBootstrappers();
if (runActivators)
{
activatePackages(_packages, discoveredActivators);
}
}
public static void LoadPackages(Action <IPackageFacility> configuration, bool runActivators = true) { _packages.Clear(); Diagnostics = new PackagingDiagnostics(); var record = new PackageLoadingRecord(); Diagnostics.LogExecution(record, () => { var facility = new PackageFacility(); var assemblyLoader = new AssemblyLoader(Diagnostics); var graph = new PackagingRuntimeGraph(Diagnostics, assemblyLoader, _packages); var codeLocation = findCallToLoadPackages(); graph.PushProvenance(codeLocation); configuration(facility); facility.Configure(graph); graph.PopProvenance(); graph.DiscoverAndLoadPackages(() => { _assemblies.Clear(); _assemblies.AddRange(assemblyLoader.Assemblies); }, runActivators); }); record.Finished = DateTime.Now; //_packages.Clear(); }