/// <summary>
        /// Gets an injection constructor
        /// </summary>
        /// <param name="constructorElement"></param>
        /// <returns></returns>
        private static InjectionConstructor GetInjectionConstructor(XmlNode constructorElement)
        {
            // ensure element is an injection constructor element
            constructorElement.ShouldBeNamed(InjectionConstructorElementName);

            return new InjectionConstructor(constructorElement.ChildNodes.OfType<XmlElement>().Select(GetConstructorParameter).ToArray());
        }
        /// <summary>
        /// Instantiates a <see cref="AssemblyConfigurationRegistrations"/>
        /// </summary>
        public AssemblyConfigurationRegistrations(XmlNode node)
        {
            // validate root element
            node.ShouldBeNamed(RegistrationsCollectionName);

            // get registrations from child nodes
            _registrations = node.ChildNodes.OfType<XmlElement>().Select(CreateRegistration).ToList();
        }