C# Mime 类型 class
C# Mime Types class
我想在我的代码中保存一个 Mime 类型。
现在我习惯这样做:
string mYMimeType = "text/plain";
有没有办法将它保存在(已经存在的)标准中,专用 class?
像...
Http.MimeTypes myMimeType = Http.MimeTypes.TextPlain;
您可以使用 MediaTypeNames
class 存在于 System.Net.Mime
命名空间中。
下面是.net class 可以帮助你,你不必自己创建它。
namespace System.Net.Mime
{
// Summary:
// Specifies the media type information for an e-mail message attachment.
public static class MediaTypeNames
{
// Summary:
// Specifies the kind of application data in an e-mail message attachment.
public static class Application
{
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Application data is not
// interpreted.
public const string Octet = "application/octet-stream";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Application data is in
// Portable Document Format (PDF).
public const string Pdf = "application/pdf";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Application data is in
// Rich Text Format (RTF).
public const string Rtf = "application/rtf";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Application data is a SOAP
// document.
public const string Soap = "application/soap+xml";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Application data is compressed.
public const string Zip = "application/zip";
}
// Summary:
// Specifies the type of image data in an e-mail message attachment.
public static class Image
{
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Image data is in Graphics
// Interchange Format (GIF).
public const string Gif = "image/gif";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Image data is in Joint
// Photographic Experts Group (JPEG) format.
public const string Jpeg = "image/jpeg";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Image data is in Tagged
// Image File Format (TIFF).
public const string Tiff = "image/tiff";
}
// Summary:
// Specifies the type of text data in an e-mail message attachment.
public static class Text
{
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Text data is in HTML format.
public const string Html = "text/html";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Text data is in plain text
// format.
public const string Plain = "text/plain";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Text data is in Rich Text
// Format (RTF).
public const string RichText = "text/richtext";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Text data is in XML format.
public const string Xml = "text/xml";
}
}
}
您可以使用方法通过文件扩展名获取 mime 类型 MimeTypeMapper.GetMimeType(".xlsx")
下面是一个实现示例:
public static class MimeTypeMapper
{
private static readonly IDictionary<string, string> _mappings =
new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase)
{
{".xls", "application/vnd.ms-excel"},
{".xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12"},
{".xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12"},
{".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},
{".xlt", "application/vnd.ms-excel"},
{".xltm", "application/vnd.ms-excel.template.macroEnabled.12"},
{".zip", "application/x-zip-compressed"},
};
public static string GetMimeType(string extension)
{
if (extension == null)
{
throw new ArgumentNullException("extension");
}
if (!extension.StartsWith("."))
{
extension = "." + extension;
}
string mime;
return _mappings.TryGetValue(extension, out mime) ? mime : "application/octet-stream";
}
}
我想在我的代码中保存一个 Mime 类型。 现在我习惯这样做:
string mYMimeType = "text/plain";
有没有办法将它保存在(已经存在的)标准中,专用 class? 像...
Http.MimeTypes myMimeType = Http.MimeTypes.TextPlain;
您可以使用 MediaTypeNames
class 存在于 System.Net.Mime
命名空间中。
下面是.net class 可以帮助你,你不必自己创建它。
namespace System.Net.Mime
{
// Summary:
// Specifies the media type information for an e-mail message attachment.
public static class MediaTypeNames
{
// Summary:
// Specifies the kind of application data in an e-mail message attachment.
public static class Application
{
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Application data is not
// interpreted.
public const string Octet = "application/octet-stream";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Application data is in
// Portable Document Format (PDF).
public const string Pdf = "application/pdf";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Application data is in
// Rich Text Format (RTF).
public const string Rtf = "application/rtf";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Application data is a SOAP
// document.
public const string Soap = "application/soap+xml";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Application data is compressed.
public const string Zip = "application/zip";
}
// Summary:
// Specifies the type of image data in an e-mail message attachment.
public static class Image
{
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Image data is in Graphics
// Interchange Format (GIF).
public const string Gif = "image/gif";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Image data is in Joint
// Photographic Experts Group (JPEG) format.
public const string Jpeg = "image/jpeg";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Image data is in Tagged
// Image File Format (TIFF).
public const string Tiff = "image/tiff";
}
// Summary:
// Specifies the type of text data in an e-mail message attachment.
public static class Text
{
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Text data is in HTML format.
public const string Html = "text/html";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Text data is in plain text
// format.
public const string Plain = "text/plain";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Text data is in Rich Text
// Format (RTF).
public const string RichText = "text/richtext";
//
// Summary:
// Specifies that the System.Net.Mime.MediaTypeNames.Text data is in XML format.
public const string Xml = "text/xml";
}
}
}
您可以使用方法通过文件扩展名获取 mime 类型 MimeTypeMapper.GetMimeType(".xlsx")
下面是一个实现示例:
public static class MimeTypeMapper
{
private static readonly IDictionary<string, string> _mappings =
new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase)
{
{".xls", "application/vnd.ms-excel"},
{".xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12"},
{".xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12"},
{".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},
{".xlt", "application/vnd.ms-excel"},
{".xltm", "application/vnd.ms-excel.template.macroEnabled.12"},
{".zip", "application/x-zip-compressed"},
};
public static string GetMimeType(string extension)
{
if (extension == null)
{
throw new ArgumentNullException("extension");
}
if (!extension.StartsWith("."))
{
extension = "." + extension;
}
string mime;
return _mappings.TryGetValue(extension, out mime) ? mime : "application/octet-stream";
}
}