我正在尝试为IApplicationBuilder
添加扩展方法并运行app.UseHsts()
,app.UseHttpsRedirection()
和app.UseStaticFiles()
。
但是尝试运行不同的命令时出现错误,提示找不到该方法,但是我使用包含扩展方法的Microsoft.AspNetCore.Builder
进行了定义。
由于某种原因,我无法在IApplicationBuilder扩展中访问与Startup.cs
中相同的扩展方法。我可以访问一些扩展方法,但不是全部。
代码:
启动:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseHsts();
app.UseHttpsRedirection();
app.UseStaticFiles();
}
扩展名:
using Microsoft.AspNetCore.Builder;
public static IApplicationBuilder UseLCDefault(this IApplicationBuilder app)
{
IHostingEnvironment env = app.ApplicationServices.GetRequiredService<IHostingEnvironment>();
app
.UseSession(new SessionOptions() { IOTimeout = new TimeSpan(3, 0, 0) })
.UseMvcWithDefaultRoute();
app.UseStaticFiles(); //causes an exception, method can't be found
return app;
}
答案 0 :(得分:2)
虽然它们共享相同的名称空间,但它们属于不同的库。
请确保在定义扩展方法的任何地方都引用必要的依赖项。
UseHsts
和UseHttpsRedirection
扩展名来自 Microsoft.AspNetCore.HttpsPolicy.dll
UseStaticFiles
来自 Microsoft.AspNetCore.StaticFiles.dll 。