/// <summary>
        /// Registers types from multiple assemblies.
        /// Only classes and IPoco interfaces are considered.
        /// Once the first type is registered, no more call to <see cref="SetAutoServiceKind(Type, AutoServiceKind)"/> is allowed.
        /// </summary>
        /// <param name="assemblyNames">The assembly names to register.</param>
        /// <returns>The number of new discovered classes.</returns>
        public int RegisterAssemblyTypes(IReadOnlyCollection <string> assemblyNames)
        {
            if (assemblyNames == null)
            {
                throw new ArgumentNullException(nameof(assemblyNames));
            }
            int totalRegistered = 0;

            using (_monitor.OnError(() => ++ _registerFatalOrErrorCount))
                using (_monitor.OpenTrace($"Registering {assemblyNames.Count} assemblies."))
                {
                    foreach (var one in assemblyNames)
                    {
                        using (_monitor.OpenTrace($"Registering assembly '{one}'."))
                        {
                            Assembly?a = null;
                            try
                            {
                                a = Assembly.Load(one);
                            }
                            catch (Exception ex)
                            {
                                _monitor.Error($"Error while loading assembly '{one}'.", ex);
                            }
                            if (a != null)
                            {
                                int nbAlready = _cc.RegisteredTypeCount;
                                _cc.RegisterTypes(a.GetTypes());
                                int delta = _cc.RegisteredTypeCount - nbAlready;
                                _monitor.CloseGroup($"{delta} types(s) registered.");
                                totalRegistered += delta;
                            }
                        }
                    }
                }
            return(totalRegistered);
        }