【发布时间】:2022-01-18 18:48:06
【问题描述】:
在 AspNetCore 5 Web 和 API 项目中,我在程序文件中有以下内容:
public class Program {
private static IConfiguration Configuration { get; } = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("settings.json", false, true)
.AddJsonFile($"settings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", false, true)
.AddEnvironmentVariables()
.Build();
public static Int32 Main(String[] args) {
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(String[] args) {
IHostBuilder builder = Host.CreateDefaultBuilder(args);
builder
.UseSerilog()
.ConfigureWebHostDefaults(builder => {
builder
.UseConfiguration(Configuration)
.UseStartup<Startup>();
});
return builder;
}
}
现在我正在使用 Program.cs 而不使用 Startup.cs 将此代码移动到 NET 6:
WebApplicationBuilder builder = WebApplication.CreateBuilder();
builder.Configuration
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("settings.json", false, true)
.AddJsonFile($"settings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", false, true)
.AddEnvironmentVariables();
builder.Host.UseSerilog();
builder.Host.ConfigureWebHostDefaults(x => {
x.UseSerilog(); / ??
x.UseConfiguration(??); // ??
x.UseWebRoot("webroot");
});
await using WebApplication application = builder.Build();
问题
-
我可以在
builder.Configuration中设置配置还是应该在 ConfigureWebHostDefaults 中设置? -
我应该使用
builder.Host.UserSerilog还是在ConfigureWebHostDefaults中添加Serilog?
这有点令人困惑,因为我可以用不同的方式做事。
【问题讨论】:
标签: c# asp.net-core asp.net-core-5.0 .net-6.0