/// <summary>
        /// Write unsupported explicit implementation syntax
        /// </summary>
        /// <param name="reflection">The reflection data used to produce the syntax</param>
        /// <param name="writer">The writer to which the syntax is written</param>
        /// <returns>True if unsupported, false if it is supported</returns>
        protected virtual bool IsUnsupportedExplicit(XPathNavigator reflection, SyntaxWriter writer)
        {
            bool isExplicit = (bool)reflection.Evaluate(apiIsExplicitImplementationExpression);

            if (isExplicit)
            {
                writer.WriteMessage("UnsupportedExplicit_" + this.Language);
            }

            return(isExplicit);
        }
        /// <summary>
        /// Write unsupported unsafe code syntax
        /// </summary>
        /// <param name="reflection">The reflection data used to produce the syntax</param>
        /// <param name="writer">The writer to which the syntax is written</param>
        /// <returns>True if unsupported, false if it is supported</returns>
        protected virtual bool IsUnsupportedUnsafe(XPathNavigator reflection, SyntaxWriter writer)
        {
            bool isUnsafe = (bool)reflection.Evaluate(apiIsUnsafeExpression);

            if (isUnsafe)
            {
                writer.WriteMessage("UnsupportedUnsafe_" + this.Language);
            }

            return(isUnsafe);
        }
        /// <summary>
        /// Write unsupported generic types syntax
        /// </summary>
        /// <param name="reflection">The reflection data used to produce the syntax</param>
        /// <param name="writer">The writer to which the syntax is written</param>
        /// <returns>True if unsupported, false if it is supported</returns>
        protected virtual bool IsUnsupportedGeneric(XPathNavigator reflection, SyntaxWriter writer)
        {
            bool isGeneric = (bool)reflection.Evaluate(apiIsGenericExpression);

            if (isGeneric)
            {
                writer.WriteMessage("UnsupportedGeneric_" + this.Language);
            }

            return(isGeneric);
        }
        /// <summary>
        /// Write unsupported variable arguments syntax
        /// </summary>
        /// <param name="reflection">The reflection data used to produce the syntax</param>
        /// <param name="writer">The writer to which the syntax is written</param>
        /// <returns>True if unsupported, false if it is supported</returns>
        protected virtual bool IsUnsupportedVarargs(XPathNavigator reflection, SyntaxWriter writer)
        {
            bool isVarargs = (bool)reflection.Evaluate(apiIsVarargsExpression);

            if (isVarargs)
            {
                writer.WriteMessage("UnsupportedVarargs_" + this.Language);
            }

            return(isVarargs);
        }
        /// <summary>
        /// Write unsupported explicit implementation syntax
        /// </summary>
        /// <param name="reflection">The reflection data used to produce the syntax</param>
        /// <param name="writer">The writer to which the syntax is written</param>
        /// <returns>True if unsupported, false if it is supported</returns>
        protected virtual bool IsUnsupportedExplicit(XPathNavigator reflection, SyntaxWriter writer)
        {
            bool isExplicit = (bool)reflection.Evaluate(apiIsExplicitImplementationExpression);

            if(isExplicit)
                writer.WriteMessage("UnsupportedExplicit_" + this.Language);

            return isExplicit;
        }
        /// <summary>
        /// Write unsupported generic types syntax
        /// </summary>
        /// <param name="reflection">The reflection data used to produce the syntax</param>
        /// <param name="writer">The writer to which the syntax is written</param>
        /// <returns>True if unsupported, false if it is supported</returns>
        protected virtual bool IsUnsupportedGeneric(XPathNavigator reflection, SyntaxWriter writer)
        {
            bool isGeneric = (bool)reflection.Evaluate(apiIsGenericExpression);

            if(isGeneric)
                writer.WriteMessage("UnsupportedGeneric_" + this.Language);

            return isGeneric;
        }
        /// <summary>
        /// Write unsupported unsafe code syntax
        /// </summary>
        /// <param name="reflection">The reflection data used to produce the syntax</param>
        /// <param name="writer">The writer to which the syntax is written</param>
        /// <returns>True if unsupported, false if it is supported</returns>
        protected virtual bool IsUnsupportedUnsafe(XPathNavigator reflection, SyntaxWriter writer)
        {
            bool isUnsafe = (bool)reflection.Evaluate(apiIsUnsafeExpression);

            if(isUnsafe)
                writer.WriteMessage("UnsupportedUnsafe_" + this.Language);

            return isUnsafe;
        }
        /// <summary>
        /// Write unsupported variable arguments syntax
        /// </summary>
        /// <param name="reflection">The reflection data used to produce the syntax</param>
        /// <param name="writer">The writer to which the syntax is written</param>
        /// <returns>True if unsupported, false if it is supported</returns>
        protected virtual bool IsUnsupportedVarargs(XPathNavigator reflection, SyntaxWriter writer)
        {
            bool isVarargs = (bool)reflection.Evaluate(apiIsVarargsExpression);

            if(isVarargs)
                writer.WriteMessage("UnsupportedVarargs_" + this.Language);

            return isVarargs;
        }