/// <summary>
        /// Find all all eligible advisor objects in the current object factory.
        /// </summary>
        /// <param name="targetType">the type of the object to be advised</param>
        /// <param name="targetName">the name of the object to be advised</param>
        /// <returns>A list of eligible <see cref="IAdvisor"/> instances</returns>
        public virtual IList <IAdvisor> FindAdvisorObjects(Type targetType, string targetName)
        {
            IList <string> advisorNames = GetAdvisorCandidateNames(targetType, targetName);

            List <IAdvisor> advisors = new List <IAdvisor>();

            if (advisorNames.Count == 0)
            {
                return(advisors);
            }

            for (int i = 0; i < advisorNames.Count; i++)
            {
                string name = advisorNames[i];
                if (IsEligibleObject(name, targetType, targetName) && !_objectFactory.IsCurrentlyInCreation(name))
                {
                    try
                    {
                        AddAdvisorCandidate(advisors, name);
                    }
                    catch (ObjectCreationException ex)
                    {
                        Exception rootEx = ex.GetBaseException();
                        if (rootEx is ObjectCurrentlyInCreationException)
                        {
                            ObjectCurrentlyInCreationException oce = (ObjectCurrentlyInCreationException)rootEx;
                            if (_objectFactory.IsCurrentlyInCreation(oce.ObjectName))
                            {
                                if (_log.IsDebugEnabled)
                                {
                                    _log.Debug(string.Format("Ignoring currently created advisor '{0}': exception message = {1}",
                                                             name, ex.Message));
                                }
                                continue;
                            }
                        }
                        throw;
                    }
                }
            }

            return(advisors);
        }