src/Framework/Host/Host.Web/HostBuilder.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using NetModular.Lib.Logging.Serilog;
using NetModular.Lib.Utils.Core.Helpers;
using HostOptions = NetModular.Lib.Host.Web.Options.HostOptions;
namespace NetModular.Lib.Host.Web
{
/// <summary>
/// WebHost构造器
/// </summary>
public class HostBuilder
{
/// <summary>
/// 启动
/// </summary>
/// <typeparam name="TStartup"></typeparam>
/// <param name="args">启动参数</param>
public void Run<TStartup>(string[] args) where TStartup : StartupAbstract
{
CreateBuilder<TStartup>(args).Build().Run();
}
/// <summary>
/// 创建主机生成器
/// </summary>
/// <typeparam name="TStartup"></typeparam>
/// <param name="args"></param>
/// <returns></returns>
public IHostBuilder CreateBuilder<TStartup>(string[] args) where TStartup : StartupAbstract
{
var configBuilder = new ConfigurationBuilder()
.SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
.AddJsonFile("appsettings.json", false);
var environmentVariable = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
if (environmentVariable.NotNull())
{
configBuilder.AddJsonFile($"appsettings.{environmentVariable}.json", false);
}
var config = configBuilder.Build();
var hostOptions = new HostOptions();
config.GetSection("Host").Bind(hostOptions);
if (hostOptions.Urls.IsNull())
hostOptions.Urls = "http://*:5000";
return Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder(args)
.UseDefaultServiceProvider(options => { options.ValidateOnBuild = false; })
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseLogging()
.UseStartup<TStartup>()
.UseUrls(hostOptions.Urls);
});
}
后面还有 2 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
