using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; using Microsoft.Extensions.Hosting; using OllamaStudy.Core; namespace OllamaStudy.UseSemanticKernel { /// /// /// public class Startup { //支持两种配置样式,并且两种 Configure 方法都受支持 #region HostApplicationBuilder 风格, 此风格优先级高于Startup(只执行一种风格) //public void ConfigureHostApplicationBuilder(IHostApplicationBuilder hostApplicationBuilder) //{ //} //public IHost BuildHostApplicationBuilder(HostApplicationBuilder hostApplicationBuilder) //{ // return hostApplicationBuilder.Build(); //} #endregion #region Startup 风格 /// /// (可选) 创建IHostBuilder /// /// public IHostBuilder CreateHostBuilder() { return Host.CreateDefaultBuilder(); } public void ConfigureHost(IHostBuilder hostBuilder) { hostBuilder.ConfigureAppConfiguration((hostBuilder,configBuilder) => { configBuilder .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("OllamaServerConfig.json", false, true); }); } /// /// (可选) 构建Host /// /// /// public IHost BuildHost(IHostBuilder hostBuilder) { return hostBuilder.Build(); } /// /// 配置服务 /// /// /// public void ConfigureServices(IServiceCollection services, HostBuilderContext context) { services .AddOptions() .Configure(context.Configuration.GetRequiredSection("OllamaServer")); } #endregion } }