Student.Core.API/Code/Core/MyHostBuilder.cs
(完整代码) 1KBusing Logging.Serilog;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Serilog;
using Student.Core.API.Config;
using System;
using System.IO;
namespace Student.Core.API.Code.Core
{
public class MyHostBuilder
{
/// <summary>
/// 创建主机
/// </summary>
/// <typeparam name="TStartup"></typeparam>
/// <param name="args">启动参数</param>
/// <returns></returns>
public IHostBuilder Create<TStartup>(string[] args) where TStartup : AbstractStartup
{
return CreateBuilder<TStartup>(args);
}
private IHostBuilder CreateBuilder<TStartup>(string[] args) where TStartup : AbstractStartup
{
//IConfiguration对象中附加自定义配置文件方式,无法在配置文件中设置自宿主端口,在这里直接获取appsettings.json配置
//为什么没独立创建IConfiguration对象,原因是热更新时配置中List集合数据无法使用Bind,会出现重复数据。
var configuration = new ConfigurationBuilder()
.SetBasePath(Environment.CurrentDirectory)
.AddJsonFile("appsettings.json")
.Build();
configuration.GetSection("Setting").Bind(BasicSetting.Setting);
if (BasicSetting.Setting.Urls.IsNull())
BasicSetting.Setting.Urls = "http://*:5000";
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<TStartup>()
.UseLogging()
.UseUrls(BasicSetting.Setting.Urls);
});
}
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。