J'ai une application Asp.Net MVC fonctionnant avec la version du cadre .NET 4.5 et j'utilise la version pro de VS2017. Les utilisateurs peuvent télécharger des pièces jointes, y compris mais sans s'y limiter :
- Excel
- Word
- PowerPoint
- jpeg
- png
Donc j'ai un private
qui se présente comme suit :
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;
}
}
Comme vous pouvez le constater, il est très simple et ne fait rien d'extraordinaire. Comme je ne l'utilise qu'à un seul endroit, j'ai pensé à utiliser la nouvelle fonction locale de C# 7. J'ai donc créé ma fonction principale comme suit et j'ai ajouté ImageExtension(string path)
à l'intérieur.
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
}
Avec le code ci-dessus, mon projet se construit sans aucune erreur. Dès que j'appuie sur F5
ou Ctrl + F5
J'obtiens l'écran d'erreur suivant
Si je vérifie dans le ErrorList
pour voir s'il y a des erreurs, je n'en obtiens aucune comme vous pouvez le voir ci-dessous.
Quelqu'un peut-il me dire où je me trompe, s'il vous plaît ? Dois-je modifier des paramètres ou inclure des DLL supplémentaires pour utiliser les fonctionnalités de C# 7 ?
Regarder ce Réponse : il semble que toutes les fonctionnalités de C# 7 devraient fonctionner sur .NET 4.5.