Beispiel #1
0
        /// <summary>
        /// Finds all matching dependencies by their name.
        /// </summary>
        /// <param name="name">the dependency name to locate.</param>
        /// <param name="required">true to raise an exception when no dependencies are found.</param>
        /// <returns>a list of found dependencies</returns>
        public List <object> Find(string name, bool required)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentNullException(nameof(name));
            }

            object locator = Locate(name);

            if (locator == null)
            {
                if (required)
                {
                    throw new ReferenceException(null, name);
                }

                return(null);
            }

            return(_references.Find(locator, required));
        }
        public List <object> Find(ReferenceQuery query, bool required)
        {
            if (query.Locator == null)
            {
                throw new NullReferenceException("Locator cannot be null");
            }

            string name    = StringConverter.ToString(query.Locator);
            object locator = Locate(name);

            if (locator == null)
            {
                if (required)
                {
                    throw new ReferenceException(null, name);
                }
                return(null);
            }

            query.Locator = locator;
            return(_references.Find(query, required));
        }