public static async Task LoadFromAssembliesInDirectory( this KernelExtensionLoader loader, IDirectoryAccessor directory, IKernel kernel, KernelInvocationContext context, IReadOnlyList <FileInfo> additionalDependencies = null) { if (directory.RootDirectoryExists()) { context.Publish(new DisplayedValueProduced($"Loading kernel extensions in directory {directory.GetFullyQualifiedRoot().FullName}", context.Command)); var extensionDlls = directory.GetAllFiles() .Where(file => file.Extension == ".dll") .Select(directory.GetFullyQualifiedFilePath); foreach (var extensionDll in extensionDlls) { await loader.LoadFromAssembly( extensionDll, kernel, context, additionalDependencies); } context.Publish(new DisplayedValueProduced($"Loaded kernel extensions in directory {directory.GetFullyQualifiedRoot().FullName}", context.Command)); } }
public async Task LoadFromAssembliesInDirectory(IDirectoryAccessor directory, IKernel kernel, PublishEvent publishEvent) { if (directory.RootDirectoryExists()) { var extensionDlls = directory.GetAllFiles().Where(file => file.Extension == ".dll").Select(file => directory.GetFullyQualifiedFilePath(file)); foreach (var extensionDll in extensionDlls) { await LoadFromAssembly(extensionDll, kernel, publishEvent); } } }