public IDataReader Find(string contentTypeHeader)
    {
        string key = DataWriterProvider.ParseMediaType(contentTypeHeader);

        if (ReadersByMime.ContainsKey(key))
        {
            return(ReadersByMime[key]);
        }
        return(null);
    }
예제 #2
0
            /// <summary>
            /// Finds an IDataReader by content-type header
            /// </summary>
            /// <param name="contentTypeHeader"></param>
            /// <returns></returns>
            public IDataReader Find(string contentTypeHeader)
            {
                string type = DataWriterProvider.ParseMediaType(contentTypeHeader);

                if (this.ReadersByMime.ContainsKey(type))
                {
                    return(ReadersByMime[type]);
                }

                return(null);
            }
예제 #3
0
            /// <summary>
            /// Parses HTTP headers for Media-Types
            /// </summary>
            /// <param name="accept">HTTP Accept header</param>
            /// <param name="contentType">HTTP Content-Type header</param>
            /// <returns>sequence of Media-Types</returns>
            /// <remarks>
            /// http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
            /// </remarks>
            public static IEnumerable <string> ParseHeaders(string accept, string contentType)
            {
                string mime;

                // check for a matching accept type
                foreach (string type in DataWriterProvider.SplitTrim(accept, ','))
                {
                    mime = DataWriterProvider.ParseMediaType(type);
                    if (!String.IsNullOrEmpty(mime))
                    {
                        yield return(mime);
                    }
                }

                // fallback on content-type
                mime = DataWriterProvider.ParseMediaType(contentType);
                if (!String.IsNullOrEmpty(mime))
                {
                    yield return(mime);
                }
            }