/// <summary>
        /// Asynchronously writes a JSON property name which represents a property annotation.
        /// </summary>
        /// <param name="propertyName">The name of the property to annotate.</param>
        /// <param name="annotationName">The name of the annotation to write.</param>
        /// <returns>A task that represents the asynchronous write operation.</returns>
        public Task WritePropertyAnnotationNameAsync(string propertyName, string annotationName)
        {
            this.AssertAsynchronous();
            Debug.Assert(!string.IsNullOrEmpty(propertyName), "!string.IsNullOrEmpty(propertyName)");
            Debug.Assert(!string.IsNullOrEmpty(annotationName), "!string.IsNullOrEmpty(annotationName)");
            Debug.Assert(annotationName.StartsWith(JsonLightConstants.ODataAnnotationNamespacePrefix,
                                                   StringComparison.Ordinal), "annotationName.StartsWith(\"odata.\")");

            return(asyncJsonWriter.WritePropertyAnnotationNameAsync(propertyName, SimplifyODataAnnotationName(annotationName)));
        }