/// <summary>
        /// Get the candidates for a given set
        /// </summary>
        /// <param name="candidates">The candidates as an enumerable</param>
        /// <returns>IEnumerable{Assembly}.</returns>
        public IEnumerable <Assembly> GetCandidateAssemblies(IEnumerable <string> candidates)
        {
            var value = candidates as string[] ?? candidates.ToArray();

            return(LoggingEnumerable.Create(
                       GetCandidateLibraries(value)
                       .Where(x => x != null)
                       .Reverse(),
                       LogValue(value)
                       ));
        }
 /// <summary>
 /// Gets the assemblies.
 /// </summary>
 /// <returns>IEnumerable{Assembly}.</returns>
 public IEnumerable <Assembly> GetAssemblies() => LoggingEnumerable.Create(_assembles.Value, LogValue);