【ASP.NET Core Web】ConfigureServicesの引数IWebHostEnvironmentはどこへ?
2024-1-15 | ASP.NET Core Web, C#
Startup.cs
のメソッドConfigureServices
の引数IWebHostEnvironment
はどこへ?
概要
今回の記事では、Startup.cs
のメソッドConfigureServices
の引数IWebHostEnvironment
でアクセス手順を掲載する。
仕様書
環境
- .NET 7.0
手順書
.NET 7で新しくプロジェクトを作るとStartup.cs
にConfigureServicesメソッドは作られず、
Program.csの
Main`メソッドにサーバーの起動時の設定を書くように変わったみたい。
IServiceCollection
から呼び出してたフィールドIsDevelopment
を旧新で比較してみる。
まずは従来の例。
public class Startup
{
...
public void ConfigureServices(IServiceCollection services, IWebHostEnvironment env)
{
...
// 以前は引数から呼び出せてた
if (env.IsDevelopment())
{
...
}
...
}
...
}
次に新しい例。
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
...
var app = builder.Build();
// WebApplication型から呼び出せるようになった
if (app.Environment.IsDevelopment())
{
...
}
...
app.Run();
}
}
app.MapRazorPages()
なとと同じような感じでアクセスできるようなった。env.WebRootPath
などもapp.Environment.WebRootPath
という感じで呼び出せる。
まとめ(感想文)
総合的にスッキリして良い変更だとは思うんだけども、こういう変更が頻繁にあるときつい。