【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という感じで呼び出せる。
まとめ(感想文)
総合的にスッキリして良い変更だとは思うんだけども、こういう変更が頻繁にあるときつい。
