【发布时间】:2017-09-22 01:10:05
【问题描述】:
我正在为 ASP.NET Core 网站构建一个支持库。我有一些中间件需要启用,并且由于它们的作用,它们需要在任何其他中间件之前添加。
我可以在 IWebHostBuilder 上创建一个扩展方法来添加服务,同样用于配置日志记录,但我看不到任何以编程方式添加中间件的方法。有没有办法做到这一点?查看 WebHost/WebHostBuilder 的源代码并没有跳出来。
鉴于第一条评论,我可能还不够清楚。我知道如何创建中间件并使用它。我要做的是确保当框架在启动时调用 Configure(IApplicationBuilder app) 方法时,我的中间件已经到位。以类似于能够在创建启动之前执行 ServiceConfiguration 的方式。所以像
这样的扩展方法public static IWebHostBuilder AddPayscaleHostingServices(this IWebHostBuilder webHostBuilder, string serviceName)
{
return webHostBuilder.ConfigureServices(collection =>
{
collection.RegisterPayscaleHostingServices();
}).ConfigureLogging(factory =>
{
});
}
使我能够在 webHostBuilder.Build 方法之前进行一些设置,但我在 IApplicationBuilder 上没有看到任何类似的中间件/任何东西。
谢谢, 埃里克
【问题讨论】:
-
请参考this并先做自己的研究。 docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware
-
我知道如何创建中间件,我知道如何添加中间件。我不知道的是如何确保在 Startup 类上调用 Configure 方法之前启用我的中间件。在一个完美的世界里,我将有机会在用户代码之前接触 IApplicationBuilder。
标签: c# asp.net asp.net-core