C# 将MapWhen与多个文件扩展名一起使用

C# 将MapWhen与多个文件扩展名一起使用,c#,asp.net-core,C#,Asp.net Core,在ASP.NET核心项目的my Startup.cs中使用MapWhen时,是否可以检查多个文件扩展名?我目前有这段代码,但不知道如何让它更“智能化”一点 app.MapWhen(context => context.Request.Path.ToString().Contains(".png") || context.Request.Path.ToString().Contains(".pdf") || context.Reque

在ASP.NET核心项目的my Startup.cs中使用MapWhen时,是否可以检查多个文件扩展名?我目前有这段代码,但不知道如何让它更“智能化”一点

app.MapWhen(context =>
   context.Request.Path.ToString().Contains(".png") ||
   context.Request.Path.ToString().Contains(".pdf") ||
   context.Request.Path.ToString().Contains(".xlsx") ||
   context.Request.Path.ToString().Contains(".xlsb") ||
   context.Request.Path.ToString().Contains(".xlsm") ||
   context.Request.Path.ToString().Contains(".docx") ||
   context.Request.Path.ToString().Contains(".doc"),
   appBranch =>
   {
      appBranch.UseStaticFiles(new StaticFileOptions
不确定是否可以同时检查多个文件扩展名?

请尝试以下代码

app.MapWhen(context =>
    //Load below array from config if you wish to. 
    var supportedExtensions = new string[] { ".png", ".pdf", ".xlsx" };
    var dotIndex = context.Request.Path.ToString().IndexOf('.');
    if(dotIndex == -1) return false;
    var pathExtn = context.Request.Path.ToString().Substring(dotIndex);
    return supportedExtensions.Contains(pathExtn);
appBranch =>
{
  appBranch.UseStaticFiles(new StaticFileOptions

没问题。如果您也使用
Path.GetExtension
,则可以对其进行更多的清理。显然这取决于你,因为你有一个有效的解决方案。