У меня есть приложение ASP.NET MVC, работающее с версией платформы .NET 4.5, и я использую версию VS2017 pro. Пользователи могут загружать вложения, включая, но не ограничиваясь:
- Excel
- Слово
- PowerPoint
- JPEG
- PNG
Итак, у меня есть функция private
, которая выглядит следующим образом:
private string ImageExtension(string path)
{
string noImagePath = HttpContext.Current.Server.MapPath("~/Content/images/Template/No-Image-Available-100x100.jpg");
string fileExtension = System.IO.Path.GetExtension(path);
switch (fileExtension)
{
case ".jpg":
case ".jpeg":
case ".gif":
case ".png":
return path;
default:
return noImagePath;
}
}
Как вы можете видеть это очень просто и ничего не делает. Поскольку я использую это только в одном месте, я подумал о том, чтобы использовать новую функцию С# 7 для локальной функции. Итак, я пошел дальше и создал свою основную функцию следующим образом и добавил ImageExtension(string path)
внутри нее.
public void BugInfo(HttpPostedFileBase file)
{
if(file != null && file.ContentLength > 0)
{
string fileName = file.FileName;
string directoryPath = "directory path";
//save path of
string savePath = System.IO.Path.Combine(directoryPath, fileName);
string testString = ImageExtension(savePath);
string ImageExtension(string path)
{
string noImagePath = HttpContext.Current.Server.MapPath("~/Content/images/Template/No-Image-Available-100x100.jpg");
string fileExtension = System.IO.Path.GetExtension(path);
switch (fileExtension)
{
case ".jpg":
case ".jpeg":
case ".gif":
case ".png":
return path;
default:
return noImagePath;
}
}
}
//save values to db here
}
С приведенным выше кодом мой проект строится без ошибок. Как только я нажму F5
или Ctrl + F5
, я получу следующий экран с ошибкой
Если я проверяю ErrorList
, чтобы увидеть, есть ли какие-либо ошибки, я не получаю их вообще, как вы можете видеть ниже.
Может кто-нибудь скажет мне, где я ошибся, пожалуйста. Нужно ли изменять какие-либо настройки или включать любые дополнительные библиотеки DLL, чтобы использовать возможности С# 7.
Глядя на этот, похоже, что все функции С# 7 должны работать на .NET 4.5