/*----------------------------------------------------------------------------------------*/
        /// <summary>
        /// Creates a terminating condition that determines whether the subject is decorated
        /// with an attribute that matches the provided attribute.
        /// </summary>
        /// <typeparam name="T">The type of attribute to look for.</typeparam>
        /// <param name="attribute">The attribute to compare against.</param>
        /// <returns>A condition that terminates the chain.</returns>
        public TerminatingCondition <TRoot, TSubject> HasMatchingAttribute <T>(T attribute)
            where T : Attribute
        {
#if !MONO
            return(Terminate(s => s.HasMatchingAttribute(attribute)));
#else
            return(Terminate(s => ExtensionsForICustomAttributeProvider.HasMatchingAttribute(s, attribute)));
#endif
        }