Example #1
0
        /// <summary>Loads all command instance descriptors from assemblies.</summary>
        /// <param name="loader">The loader to perform loading with.</param>
        /// <param name="assemblies">Assemblies to load descriptors from.</param>
        /// <param name="cancellationToken">Token that can be used to stop loading.</param>
        /// <returns>Enumerable of all loaded command descriptors.</returns>
        public static async Task <IEnumerable <ICommandInstanceDescriptor> > LoadFromAssembliesAsync(this ICommandsLoader loader, IEnumerable <Assembly> assemblies, CancellationToken cancellationToken = default)
        {
            List <ICommandInstanceDescriptor> results = new List <ICommandInstanceDescriptor>();

            foreach (Assembly asm in assemblies)
            {
                results.AddRange(await loader.LoadFromAssemblyAsync(asm, cancellationToken).ConfigureAwait(false));
            }
            return(results);
        }