MIMEParse port to C#

2009-02-18 @ 19:45#

I posted a full port of Joe Gregorio's MIMEParse utilty. The primary method of this utility accepts two inputs:

A string array of MIME types
Such as those supported by a web server for a selected resource
A single string of acceptable MIME types
Sush as those sent by common browsers in the Accept Header when requesting a resource from a web server

The utility evaluates the options based on rules in the RFC2616 section 14.1 and returns the "best match" as a result (or no result if no match can be found). Below are some test examples:

mimeTypesSupported = new string[] { "application/xbel+xml", "text/xml" };
// match using a type versus a lower weighted subtype
Debug.Assert(MimeParse.BestMatch(mimeTypesSupported, "text/*;q=0.5,*/*; q=0.1") == "text/xml");
// fail to match anything
Debug.Assert(MimeParse.BestMatch(mimeTypesSupported, "text/html,application/atom+xml; q=0.9") == string.Empty);

Some other links: