通用主机如何挂载aspnetcore
2020-02-07 17:00:03 0 举报
AI智能生成
源码浅析 通用主机如何挂载AspnetCore
作者其他创作
大纲/内容
继承自IHostEnvironment
GenericWebHostedService
GenericWebHostServiceOptions
Action<IApplicationBuilder> ConfigureApplication { get; set; }
WebHostOptions WebHostOptions { get; set; }
AggregateException HostingStartupExceptions { get; set; }
IServer
IFeatureCollection
bool IsReadOnly
int Revision
object this[Type key]
TFeature Get<TFeature>()
void Set<TFeature>(TFeature instance)
ILoggerFactory
DiagnosticListener
IHttpContextFactory
HttpContext Create(IFeatureCollection featureCollection)
void Dispose(HttpContext httpContext)
IApplicationBuilderFactory
IApplicationBuilder CreateBuilder(IFeatureCollection serverFeatures);
IApplicationBuilder
IServiceProvider ApplicationServices { get; set; }
IFeatureCollection ServerFeatures
IDictionary<string, object> Properties { get; }
IApplicationBuilder Use(Func<RequestDelegate, RequestDelegate> middleware)
IApplicationBuilder New()
RequestDelegate Build()
IEnumerable<IStartupFilter>
IConfiguration
IWebHostEnvironment
string WebRootPath { get; set; }
IFileProvider WebRootFileProvider { get; set; }
string EnvironmentName { get; set; }
string ApplicationName { get; set; }
string WebRootPath { get; set; }
IFileProvider WebRootFileProvider { get; set; }
string ContentRootPath { get; set; }
IFileProvider ContentRootFileProvider { get; set; }
public async Task StartAsync(CancellationToken cancellationToken)
public async Task StopAsync(CancellationToken cancellationToken)
await Server.StopAsync(cancellationToken);
GenericWebHostBuilder
构造:public GenericWebHostBuilder(IHostBuilder builder)
_builder = builder;
_config = new ConfigurationBuilder()
.AddEnvironmentVariables(prefix: "ASPNETCORE_")
.Build();
_builder.ConfigureHostConfiguration(config =>
ExecuteHostingStartups();
config.AddConfiguration(_config);
_builder.ConfigureAppConfiguration((context, configurationBuilder) =>
_builder.ConfigureServices((context, services) =>
var webhostContext = GetWebHostBuilderContext(context);
var webHostOptions = (WebHostOptions)context.Properties[typeof(WebHostOptions)];
services.AddSingleton(webhostContext.HostingEnvironment);
services.Configure<GenericWebHostServiceOptions>(options =>
options.WebHostOptions = webHostOptions;
options.HostingStartupExceptions = _hostingStartupErrors;
_hostingStartupWebHostBuilder?.ConfigureServices(webhostContext, services);
Support UseStartup(assemblyName)
UseStartup(startupType, context, services);
Private ExecuteHostingStartups()
public IWebHostBuilder ConfigureAppConfiguration(Action<WebHostBuilderContext, IConfigurationBuilder> configureDelegate)
public IWebHostBuilder ConfigureServices(Action<IServiceCollection> configureServices)
public IWebHostBuilder ConfigureServices(Action<WebHostBuilderContext, IServiceCollection> configureServices)
public IWebHostBuilder UseDefaultServiceProvider(Action<WebHostBuilderContext, ServiceProviderOptions> configure)
public IWebHostBuilder UseStartup(Type startupType)
public IWebHostBuilder Configure(Action<WebHostBuilderContext, IApplicationBuilder> configure)
public string GetSetting(string key
public IWebHostBuilder UseSetting(string key, string value)
WebHostOptions
public WebHostOptions(IConfiguration configuration)
: this(configuration, string.Empty) { }
WebHostOptions(IConfiguration configuration, string applicationNameFallback)
public string ApplicationName { get; set; }
public bool PreventHostingStartup { get; set; }
public bool SuppressStatusMessages { get; set; }
public IReadOnlyList<string> HostingStartupAssemblies { get; set; }
public IReadOnlyList<string> HostingStartupExcludeAssemblies { get; set; }
public bool DetailedErrors { get; set; }
public bool CaptureStartupErrors { get; set; }
public string Environment { get; set; }
public string StartupAssembly { get; set; }
public string WebRoot { get; set; }
public string ContentRootPath { get; set; }
public TimeSpan ShutdownTimeout { get; set; } = TimeSpan.FromSeconds(5);
public IEnumerable<string> GetFinalHostingStartupAssemblies()

收藏
0 条评论
下一页
为你推荐
查看更多