如何在 ASP.NET Core 6 MVC 中设置 Rotativa.aspnetcore 配置

How to setup Rotativa.aspnetcore Configuration in ASP.NET Core 6 MVC

如何在 Program.cs 中添加 Rotativa.aspnetcore 配置,而不是在 .NET 5 及更低版本中 Startup.cs 中的 RotativaConfiguration.Setup(env);

我在 Program.cs 中尝试过的内容:

var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
RotativaConfiguration.Setup(env);

谢谢

.Net 5及以下版本,配置方法如下:

public void Configure(IApplicationBuilder app, 
                      IWebHostEnvironment env,
                      IHostApplicationLifetime lifetime,
                      IService service)
{
    //........
}

在 .NET 6 中,WebApplication 上有一些常用服务可作为顶级属性使用,其他服务需要通过 WebApplication.ServicesIServiceProvider 手动解析。

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddSingleton<IService, Service>();

var app = builder.Build();

IService service = app.Services.GetRequiredService<IService>();
ILogger logger = app.Logger;
IHostApplicationLifetime lifetime = app.Lifetime;
IWebHostEnvironment env = app.Environment;

//.....

所以在你的项目中,你可以这样配置:

IWebHostEnvironment env = app.Environment;
RotativaConfiguration.Setup((Microsoft.AspNetCore.Hosting.IHostingEnvironment)env);

.Net 6other version配置文件的区别请参考this link