我正在尝试将我的旧mvc5项目移动到mvc6.旧代码是:
public string ContentType
{
get
{
if (!string.IsNullOrEmpty(FileName))
return MimeMapping.GetMimeMapping(FileName);
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
错误是
当前上下文中不存在名称"MimeMapping"
有没有一种更好的方法来设置C#中的mimetypes而不是我想要提前感谢的那种.
static String MimeType(string filePath)
{
String ret = null;
FileInfo file = new FileInfo(filePath);
if (file.Extension.ToUpper() == ".PDF")
{
ret = "application/pdf";
}
else if (file.Extension.ToUpper() == ".JPG" || file.Extension.ToUpper() == ".JPEG")
{
ret = "image/jpeg";
}
else if (file.Extension.ToUpper() == ".PNG")
{
ret = "image/png";
}
else if (file.Extension.ToUpper() == ".GIF")
{
ret = "image/gif";
}
else if (file.Extension.ToUpper() == ".TIFF" || file.Extension.ToUpper() == ".TIF")
{
ret = "image/tiff";
}
else
{
ret = "image/" + file.Extension.Replace(".", ""); …Run Code Online (Sandbox Code Playgroud) 根据这个问题和答案,我有以下代码如何获取ASP.NET C#中请求的文件的MIME类型? 它工作得非常好:
static MimeMappingWrapper()
{
// dirty trick - Assembly.LoadWIthPartialName has been deprecated
//Assembly ass = Assembly.LoadWithPartialName("System.Web");
Assembly ass = Assembly.GetAssembly(typeof (HttpApplication));
Type mimeMappingType = ass.GetType("System.Web.MimeMapping");
GetMimeMappingMethod = mimeMappingType.GetMethod("GetMimeMapping", BindingFlags.Static | BindingFlags.NonPublic);
}
Run Code Online (Sandbox Code Playgroud)
现在突然mimeMappingType.GetMethod("GetMimeMapping", BindingFlags.Static | BindingFlags.NonPublic)回来了null.
可能是什么原因?在应用程序中没有更改任何特殊内容,即使它是,它如何影响包装类的构造函数?