C# MIME Types

Recently, I needed to implement a minimal web server in C#. The .NET HTTP classes worked great, but there’s nothing built in to provide MIME types (other than looking in the registry, which I don’t trust to be complete/consistent). So I extracted the data from the Debian /etc/mime.types file for anything with a file extension and created a simple static class to do lookups for them.

Usage examples:

// do a lookup
String mimeType = MimeType.Get(".jpg");

// the dot is optional
String mimeType = MimeType.Get("jpg");

// non-existent extensions will return the default application/octet-stream type
String mimeType = MimeType.Get(".foo");

// you can also provide an explicit default type
String mimeType = MimeType.Get(".foo", "text/plain");

You can download MimeType.cs or view it in-line below.

using System;
using System.Collections.Generic;

namespace Robobunny
{
public static class MimeType
{

#region MIME type list
private static Dictionary<string, string=""> MimeTypeDict = new Dictionary<string, string="">()
{
{ "ez", "application/andrew-inset" },
{ "anx", "application/annodex" },
{ "atom", "application/atom+xml" },
{ "atomcat", "application/atomcat+xml" },
{ "atomsrv", "application/atomserv+xml" },
{ "lin", "application/bbolin" },
{ "cap", "application/cap" },
{ "pcap", "application/cap" },
{ "cu", "application/cu-seeme" },
{ "davmount", "application/davmount+xml" },
{ "tsp", "application/dsptype" },
{ "es", "application/ecmascript" },
{ "spl", "application/futuresplash" },
{ "hta", "application/hta" },
{ "jar", "application/java-archive" },
{ "ser", "application/java-serialized-object" },
{ "class", "application/java-vm" },
{ "js", "application/javascript" },
{ "json", "application/json" },
{ "m3g", "application/m3g" },
{ "hqx", "application/mac-binhex40" },
{ "cpt", "application/mac-compactpro" },
{ "nb", "application/mathematica" },
{ "nbp", "application/mathematica" },
{ "mdb", "application/msaccess" },
{ "doc", "application/msword" },
{ "dot", "application/msword" },
{ "mxf", "application/mxf" },
{ "bin", "application/octet-stream" },
{ "oda", "application/oda" },
{ "ogx", "application/ogg" },
{ "pdf", "application/pdf" },
{ "key", "application/pgp-keys" },
{ "pgp", "application/pgp-signature" },
{ "prf", "application/pics-rules" },
{ "ps", "application/postscript" },
{ "ai", "application/postscript" },
{ "eps", "application/postscript" },
{ "epsi", "application/postscript" },
{ "epsf", "application/postscript" },
{ "eps2", "application/postscript" },
{ "eps3", "application/postscript" },
{ "rar", "application/rar" },
{ "rdf", "application/rdf+xml" },
{ "rss", "application/rss+xml" },
{ "rtf", "application/rtf" },
{ "smi", "application/smil" },
{ "smil", "application/smil" },
{ "xhtml", "application/xhtml+xml" },
{ "xht", "application/xhtml+xml" },
{ "xml", "application/xml" },
{ "xsl", "application/xml" },
{ "xsd", "application/xml" },
{ "xspf", "application/xspf+xml" },
{ "zip", "application/zip" },
{ "apk", "application/vnd.android.package-archive" },
{ "cdy", "application/vnd.cinderella" },
{ "kml", "application/vnd.google-earth.kml+xml" },
{ "kmz", "application/vnd.google-earth.kmz" },
{ "xul", "application/vnd.mozilla.xul+xml" },
{ "xls", "application/vnd.ms-excel" },
{ "xlb", "application/vnd.ms-excel" },
{ "xlt", "application/vnd.ms-excel" },
{ "cat", "application/vnd.ms-pki.seccat" },
{ "stl", "application/vnd.ms-pki.stl" },
{ "ppt", "application/vnd.ms-powerpoint" },
{ "pps", "application/vnd.ms-powerpoint" },
{ "odc", "application/vnd.oasis.opendocument.chart" },
{ "odb", "application/vnd.oasis.opendocument.database" },
{ "odf", "application/vnd.oasis.opendocument.formula" },
{ "odg", "application/vnd.oasis.opendocument.graphics" },
{ "otg", "application/vnd.oasis.opendocument.graphics-template" },
{ "odi", "application/vnd.oasis.opendocument.image" },
{ "odp", "application/vnd.oasis.opendocument.presentation" },
{ "otp", "application/vnd.oasis.opendocument.presentation-template" },
{ "ods", "application/vnd.oasis.opendocument.spreadsheet" },
{ "ots", "application/vnd.oasis.opendocument.spreadsheet-template" },
{ "odt", "application/vnd.oasis.opendocument.text" },
{ "odm", "application/vnd.oasis.opendocument.text-master" },
{ "ott", "application/vnd.oasis.opendocument.text-template" },
{ "oth", "application/vnd.oasis.opendocument.text-web" },
{ "xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" },
{ "xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template" },
{ "pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation" },
{ "ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow" },
{ "potx", "application/vnd.openxmlformats-officedocument.presentationml.template" },
{ "docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document" },
{ "dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template" },
{ "cod", "application/vnd.rim.cod" },
{ "mmf", "application/vnd.smaf" },
{ "sdc", "application/vnd.stardivision.calc" },
{ "sds", "application/vnd.stardivision.chart" },
{ "sda", "application/vnd.stardivision.draw" },
{ "sdd", "application/vnd.stardivision.impress" },
{ "sdf", "application/vnd.stardivision.math" },
{ "sdw", "application/vnd.stardivision.writer" },
{ "sgl", "application/vnd.stardivision.writer-global" },
{ "sxc", "application/vnd.sun.xml.calc" },
{ "stc", "application/vnd.sun.xml.calc.template" },
{ "sxd", "application/vnd.sun.xml.draw" },
{ "std", "application/vnd.sun.xml.draw.template" },
{ "sxi", "application/vnd.sun.xml.impress" },
{ "sti", "application/vnd.sun.xml.impress.template" },
{ "sxm", "application/vnd.sun.xml.math" },
{ "sxw", "application/vnd.sun.xml.writer" },
{ "sxg", "application/vnd.sun.xml.writer.global" },
{ "stw", "application/vnd.sun.xml.writer.template" },
{ "sis", "application/vnd.symbian.install" },
{ "vsd", "application/vnd.visio" },
{ "wbxml", "application/vnd.wap.wbxml" },
{ "wmlc", "application/vnd.wap.wmlc" },
{ "wmlsc", "application/vnd.wap.wmlscriptc" },
{ "wpd", "application/vnd.wordperfect" },
{ "wp5", "application/vnd.wordperfect5.1" },
{ "wk", "application/x-123" },
{ "7z", "application/x-7z-compressed" },
{ "abw", "application/x-abiword" },
{ "dmg", "application/x-apple-diskimage" },
{ "bcpio", "application/x-bcpio" },
{ "torrent", "application/x-bittorrent" },
{ "cab", "application/x-cab" },
{ "cbr", "application/x-cbr" },
{ "cbz", "application/x-cbz" },
{ "cdf", "application/x-cdf" },
{ "cda", "application/x-cdf" },
{ "vcd", "application/x-cdlink" },
{ "pgn", "application/x-chess-pgn" },
{ "cpio", "application/x-cpio" },
{ "csh", "application/x-csh" },
{ "deb", "application/x-debian-package" },
{ "udeb", "application/x-debian-package" },
{ "dcr", "application/x-director" },
{ "dir", "application/x-director" },
{ "dxr", "application/x-director" },
{ "dms", "application/x-dms" },
{ "wad", "application/x-doom" },
{ "dvi", "application/x-dvi" },
{ "rhtml", "application/x-httpd-eruby" },
{ "pfa", "application/x-font" },
{ "pfb", "application/x-font" },
{ "gsf", "application/x-font" },
{ "pcf", "application/x-font" },
{ "pcf.Z", "application/x-font" },
{ "mm", "application/x-freemind" },
{ "gnumeric", "application/x-gnumeric" },
{ "sgf", "application/x-go-sgf" },
{ "gcf", "application/x-graphing-calculator" },
{ "gtar", "application/x-gtar" },
{ "tgz", "application/x-gtar" },
{ "taz", "application/x-gtar" },
{ "hdf", "application/x-hdf" },
{ "phtml", "application/x-httpd-php" },
{ "pht", "application/x-httpd-php" },
{ "php", "application/x-httpd-php" },
{ "phps", "application/x-httpd-php-source" },
{ "php3", "application/x-httpd-php3" },
{ "php3p", "application/x-httpd-php3-preprocessed" },
{ "php4", "application/x-httpd-php4" },
{ "php5", "application/x-httpd-php5" },
{ "ica", "application/x-ica" },
{ "info", "application/x-info" },
{ "ins", "application/x-internet-signup" },
{ "isp", "application/x-internet-signup" },
{ "iii", "application/x-iphone" },
{ "iso", "application/x-iso9660-image" },
{ "jam", "application/x-jam" },
{ "jnlp", "application/x-java-jnlp-file" },
{ "jmz", "application/x-jmol" },
{ "chrt", "application/x-kchart" },
{ "kil", "application/x-killustrator" },
{ "skp", "application/x-koan" },
{ "skd", "application/x-koan" },
{ "skt", "application/x-koan" },
{ "skm", "application/x-koan" },
{ "kpr", "application/x-kpresenter" },
{ "kpt", "application/x-kpresenter" },
{ "ksp", "application/x-kspread" },
{ "kwd", "application/x-kword" },
{ "kwt", "application/x-kword" },
{ "latex", "application/x-latex" },
{ "lha", "application/x-lha" },
{ "lyx", "application/x-lyx" },
{ "lzh", "application/x-lzh" },
{ "lzx", "application/x-lzx" },
{ "frm", "application/x-maker" },
{ "maker", "application/x-maker" },
{ "frame", "application/x-maker" },
{ "fm", "application/x-maker" },
{ "fb", "application/x-maker" },
{ "book", "application/x-maker" },
{ "fbdoc", "application/x-maker" },
{ "mif", "application/x-mif" },
{ "wmd", "application/x-ms-wmd" },
{ "wmz", "application/x-ms-wmz" },
{ "com", "application/x-msdos-program" },
{ "exe", "application/x-msdos-program" },
{ "bat", "application/x-msdos-program" },
{ "dll", "application/x-msdos-program" },
{ "msi", "application/x-msi" },
{ "nc", "application/x-netcdf" },
{ "pac", "application/x-ns-proxy-autoconfig" },
{ "dat", "application/x-ns-proxy-autoconfig" },
{ "nwc", "application/x-nwc" },
{ "o", "application/x-object" },
{ "oza", "application/x-oz-application" },
{ "p7r", "application/x-pkcs7-certreqresp" },
{ "crl", "application/x-pkcs7-crl" },
{ "pyc", "application/x-python-code" },
{ "pyo", "application/x-python-code" },
{ "qgs", "application/x-qgis" },
{ "shp", "application/x-qgis" },
{ "shx", "application/x-qgis" },
{ "qtl", "application/x-quicktimeplayer" },
{ "rpm", "application/x-redhat-package-manager" },
{ "rb", "application/x-ruby" },
{ "sh", "application/x-sh" },
{ "shar", "application/x-shar" },
{ "swf", "application/x-shockwave-flash" },
{ "swfl", "application/x-shockwave-flash" },
{ "scr", "application/x-silverlight" },
{ "sit", "application/x-stuffit" },
{ "sitx", "application/x-stuffit" },
{ "sv4cpio", "application/x-sv4cpio" },
{ "sv4crc", "application/x-sv4crc" },
{ "tar", "application/x-tar" },
{ "tcl", "application/x-tcl" },
{ "gf", "application/x-tex-gf" },
{ "pk", "application/x-tex-pk" },
{ "texinfo", "application/x-texinfo" },
{ "texi", "application/x-texinfo" },
{ "~", "application/x-trash" },
{ "%", "application/x-trash" },
{ "bak", "application/x-trash" },
{ "old", "application/x-trash" },
{ "sik", "application/x-trash" },
{ "t", "application/x-troff" },
{ "tr", "application/x-troff" },
{ "roff", "application/x-troff" },
{ "man", "application/x-troff-man" },
{ "me", "application/x-troff-me" },
{ "ms", "application/x-troff-ms" },
{ "ustar", "application/x-ustar" },
{ "src", "application/x-wais-source" },
{ "wz", "application/x-wingz" },
{ "crt", "application/x-x509-ca-cert" },
{ "xcf", "application/x-xcf" },
{ "fig", "application/x-xfig" },
{ "xpi", "application/x-xpinstall" },
{ "amr", "audio/amr" },
{ "awb", "audio/amr-wb" },
{ "axa", "audio/annodex" },
{ "au", "audio/basic" },
{ "snd", "audio/basic" },
{ "flac", "audio/flac" },
{ "mid", "audio/midi" },
{ "midi", "audio/midi" },
{ "kar", "audio/midi" },
{ "mpga", "audio/mpeg" },
{ "mpega", "audio/mpeg" },
{ "mp2", "audio/mpeg" },
{ "mp3", "audio/mpeg" },
{ "m4a", "audio/mpeg" },
{ "m3u", "audio/mpegurl" },
{ "oga", "audio/ogg" },
{ "ogg", "audio/ogg" },
{ "spx", "audio/ogg" },
{ "sid", "audio/prs.sid" },
{ "aif", "audio/x-aiff" },
{ "aiff", "audio/x-aiff" },
{ "aifc", "audio/x-aiff" },
{ "gsm", "audio/x-gsm" },
{ "wma", "audio/x-ms-wma" },
{ "wax", "audio/x-ms-wax" },
{ "ra", "audio/x-pn-realaudio" },
{ "rm", "audio/x-pn-realaudio" },
{ "ram", "audio/x-pn-realaudio" },
{ "pls", "audio/x-scpls" },
{ "sd2", "audio/x-sd2" },
{ "wav", "audio/x-wav" },
{ "alc", "chemical/x-alchemy" },
{ "cac", "chemical/x-cache" },
{ "cache", "chemical/x-cache" },
{ "csf", "chemical/x-cache-csf" },
{ "cbin", "chemical/x-cactvs-binary" },
{ "cascii", "chemical/x-cactvs-binary" },
{ "ctab", "chemical/x-cactvs-binary" },
{ "cdx", "chemical/x-cdx" },
{ "cer", "chemical/x-cerius" },
{ "c3d", "chemical/x-chem3d" },
{ "chm", "chemical/x-chemdraw" },
{ "cif", "chemical/x-cif" },
{ "cmdf", "chemical/x-cmdf" },
{ "cml", "chemical/x-cml" },
{ "cpa", "chemical/x-compass" },
{ "bsd", "chemical/x-crossfire" },
{ "csml", "chemical/x-csml" },
{ "csm", "chemical/x-csml" },
{ "ctx", "chemical/x-ctx" },
{ "cxf", "chemical/x-cxf" },
{ "cef", "chemical/x-cxf" },
{ "emb", "chemical/x-embl-dl-nucleotide" },
{ "embl", "chemical/x-embl-dl-nucleotide" },
{ "spc", "chemical/x-galactic-spc" },
{ "inp", "chemical/x-gamess-input" },
{ "gam", "chemical/x-gamess-input" },
{ "gamin", "chemical/x-gamess-input" },
{ "fch", "chemical/x-gaussian-checkpoint" },
{ "fchk", "chemical/x-gaussian-checkpoint" },
{ "cub", "chemical/x-gaussian-cube" },
{ "gau", "chemical/x-gaussian-input" },
{ "gjc", "chemical/x-gaussian-input" },
{ "gjf", "chemical/x-gaussian-input" },
{ "gal", "chemical/x-gaussian-log" },
{ "gcg", "chemical/x-gcg8-sequence" },
{ "gen", "chemical/x-genbank" },
{ "hin", "chemical/x-hin" },
{ "istr", "chemical/x-isostar" },
{ "ist", "chemical/x-isostar" },
{ "jdx", "chemical/x-jcamp-dx" },
{ "dx", "chemical/x-jcamp-dx" },
{ "kin", "chemical/x-kinemage" },
{ "mcm", "chemical/x-macmolecule" },
{ "mmd", "chemical/x-macromodel-input" },
{ "mmod", "chemical/x-macromodel-input" },
{ "mol", "chemical/x-mdl-molfile" },
{ "rd", "chemical/x-mdl-rdfile" },
{ "rxn", "chemical/x-mdl-rxnfile" },
{ "sd", "chemical/x-mdl-sdfile" },
{ "tgf", "chemical/x-mdl-tgf" },
{ "mcif", "chemical/x-mmcif" },
{ "mol2", "chemical/x-mol2" },
{ "b", "chemical/x-molconn-Z" },
{ "gpt", "chemical/x-mopac-graph" },
{ "mop", "chemical/x-mopac-input" },
{ "mopcrt", "chemical/x-mopac-input" },
{ "mpc", "chemical/x-mopac-input" },
{ "zmt", "chemical/x-mopac-input" },
{ "moo", "chemical/x-mopac-out" },
{ "mvb", "chemical/x-mopac-vib" },
{ "asn", "chemical/x-ncbi-asn1" },
{ "prt", "chemical/x-ncbi-asn1-ascii" },
{ "ent", "chemical/x-ncbi-asn1-ascii" },
{ "val", "chemical/x-ncbi-asn1-binary" },
{ "aso", "chemical/x-ncbi-asn1-binary" },
{ "pdb", "chemical/x-pdb" },
{ "ros", "chemical/x-rosdal" },
{ "sw", "chemical/x-swissprot" },
{ "vms", "chemical/x-vamas-iso14976" },
{ "vmd", "chemical/x-vmd" },
{ "xtel", "chemical/x-xtel" },
{ "xyz", "chemical/x-xyz" },
{ "gif", "image/gif" },
{ "ief", "image/ief" },
{ "jpeg", "image/jpeg" },
{ "jpg", "image/jpeg" },
{ "jpe", "image/jpeg" },
{ "pcx", "image/pcx" },
{ "png", "image/png" },
{ "svg", "image/svg+xml" },
{ "svgz", "image/svg+xml" },
{ "tiff", "image/tiff" },
{ "tif", "image/tiff" },
{ "djvu", "image/vnd.djvu" },
{ "djv", "image/vnd.djvu" },
{ "wbmp", "image/vnd.wap.wbmp" },
{ "cr2", "image/x-canon-cr2" },
{ "crw", "image/x-canon-crw" },
{ "ras", "image/x-cmu-raster" },
{ "cdr", "image/x-coreldraw" },
{ "pat", "image/x-coreldrawpattern" },
{ "cdt", "image/x-coreldrawtemplate" },
{ "erf", "image/x-epson-erf" },
{ "ico", "image/x-icon" },
{ "art", "image/x-jg" },
{ "jng", "image/x-jng" },
{ "bmp", "image/x-ms-bmp" },
{ "nef", "image/x-nikon-nef" },
{ "orf", "image/x-olympus-orf" },
{ "psd", "image/x-photoshop" },
{ "pnm", "image/x-portable-anymap" },
{ "pbm", "image/x-portable-bitmap" },
{ "pgm", "image/x-portable-graymap" },
{ "ppm", "image/x-portable-pixmap" },
{ "rgb", "image/x-rgb" },
{ "xbm", "image/x-xbitmap" },
{ "xpm", "image/x-xpixmap" },
{ "xwd", "image/x-xwindowdump" },
{ "eml", "message/rfc822" },
{ "igs", "model/iges" },
{ "iges", "model/iges" },
{ "msh", "model/mesh" },
{ "mesh", "model/mesh" },
{ "silo", "model/mesh" },
{ "wrl", "model/vrml" },
{ "vrml", "model/vrml" },
{ "x3dv", "model/x3d+vrml" },
{ "x3d", "model/x3d+xml" },
{ "x3db", "model/x3d+binary" },
{ "manifest", "text/cache-manifest" },
{ "ics", "text/calendar" },
{ "icz", "text/calendar" },
{ "css", "text/css" },
{ "csv", "text/csv" },
{ "323", "text/h323" },
{ "html", "text/html" },
{ "htm", "text/html" },
{ "shtml", "text/html" },
{ "uls", "text/iuls" },
{ "mml", "text/mathml" },
{ "asc", "text/plain" },
{ "txt", "text/plain" },
{ "text", "text/plain" },
{ "pot", "text/plain" },
{ "brf", "text/plain" },
{ "rtx", "text/richtext" },
{ "sct", "text/scriptlet" },
{ "wsc", "text/scriptlet" },
{ "tm", "text/texmacs" },
{ "ts", "text/texmacs" },
{ "tsv", "text/tab-separated-values" },
{ "jad", "text/vnd.sun.j2me.app-descriptor" },
{ "wml", "text/vnd.wap.wml" },
{ "wmls", "text/vnd.wap.wmlscript" },
{ "bib", "text/x-bibtex" },
{ "boo", "text/x-boo" },
{ "h++", "text/x-c++hdr" },
{ "hpp", "text/x-c++hdr" },
{ "hxx", "text/x-c++hdr" },
{ "hh", "text/x-c++hdr" },
{ "c++", "text/x-c++src" },
{ "cpp", "text/x-c++src" },
{ "cxx", "text/x-c++src" },
{ "cc", "text/x-c++src" },
{ "h", "text/x-chdr" },
{ "htc", "text/x-component" },
{ "c", "text/x-csrc" },
{ "d", "text/x-dsrc" },
{ "diff", "text/x-diff" },
{ "patch", "text/x-diff" },
{ "hs", "text/x-haskell" },
{ "java", "text/x-java" },
{ "lhs", "text/x-literate-haskell" },
{ "moc", "text/x-moc" },
{ "p", "text/x-pascal" },
{ "pas", "text/x-pascal" },
{ "gcd", "text/x-pcs-gcd" },
{ "pl", "text/x-perl" },
{ "pm", "text/x-perl" },
{ "py", "text/x-python" },
{ "scala", "text/x-scala" },
{ "etx", "text/x-setext" },
{ "tk", "text/x-tcl" },
{ "tex", "text/x-tex" },
{ "ltx", "text/x-tex" },
{ "sty", "text/x-tex" },
{ "cls", "text/x-tex" },
{ "vcs", "text/x-vcalendar" },
{ "vcf", "text/x-vcard" },
{ "3gp", "video/3gpp" },
{ "axv", "video/annodex" },
{ "dl", "video/dl" },
{ "dif", "video/dv" },
{ "dv", "video/dv" },
{ "fli", "video/fli" },
{ "gl", "video/gl" },
{ "mpeg", "video/mpeg" },
{ "mpg", "video/mpeg" },
{ "mpe", "video/mpeg" },
{ "mp4", "video/mp4" },
{ "qt", "video/quicktime" },
{ "mov", "video/quicktime" },
{ "ogv", "video/ogg" },
{ "mxu", "video/vnd.mpegurl" },
{ "flv", "video/x-flv" },
{ "lsf", "video/x-la-asf" },
{ "lsx", "video/x-la-asf" },
{ "mng", "video/x-mng" },
{ "asf", "video/x-ms-asf" },
{ "asx", "video/x-ms-asf" },
{ "wm", "video/x-ms-wm" },
{ "wmv", "video/x-ms-wmv" },
{ "wmx", "video/x-ms-wmx" },
{ "wvx", "video/x-ms-wvx" },
{ "avi", "video/x-msvideo" },
{ "movie", "video/x-sgi-movie" },
{ "mpv", "video/x-matroska" },
{ "mkv", "video/x-matroska" },
{ "ice", "x-conference/x-cooltalk" },
{ "sisx", "x-epoc/x-sisx-app" },
{ "vrm", "x-world/x-vrml" }
};
#endregion</string,></string,>

#region Get
///

/// Returns the mime type for the requested file extension. Returns
/// the default application/octet-stream if the extension is not found.
///

//////
public static String Get(String extension)
{
return Get(extension, MimeTypeDict["bin"]);
}

///

/// Returns the mime type for the requested file extension. Returns the
/// specified defaultMimeType if the extension is not found.
///

/////////
public static String Get(String extension, String defaultMimeType)
{
if (extension.StartsWith("."))
extension = extension.Remove(0, 1);

if (MimeTypeDict.ContainsKey(extension))
return MimeTypeDict[extension];
else
return defaultMimeType;
}
#endregion Get

}
}

8 Comments

  1. MGhostSoft

    Thank you, this is helpful. But the name of the dictionary can’t be the same as the name of class.

  2. David Compton

    Nice solution. Thank you. (I just changed the dictionary name to MimeTypeDict as per MGhostSoft’s comment).

  3. Kirk Baucom

    Thanks guys, I updated the code to use a different name. The class name in my program was different, and I never tested it when I made it “generic” (oops).

  4. akhi

    That was so helpful .Thank you .

  5. mh

    After stumbling across this post looking for a native C# implementation of what you have posted, I regretfully have no choice but to deploy the powder hand in response to your egregious omission of any and all JSON mime types.

    *Smack*

    • Kirk Baucom

      Fixed

  6. Jo Borrett

    What license agreement is this code under please?

    • Kirk Baucom

      Public domain, do whatever you want with it. If you want to link here from your docs, that would be great, but I certainly don’t expect it for something this small.

Leave a Reply

Your email address will not be published.

© 2022

Theme by Anders NorenUp ↑