当前位置: 首页 > news >正文

常州网站制作公司有哪些滁州网站建设设计

常州网站制作公司有哪些,滁州网站建设设计,电子产品玩具东莞网站建设,单页面网站模板本文以自己在工作中学习和使用.net core generic-host 作一个总结。前言在创建的ASPNETCORE项目中#xff0c;我们可以在Main()中看见#xff0c;我们通过IWebHostBuild创建了一个IWebHost#xff0c;而微软提供了WebHost.CreateDefaultBuilder(args)来帮助我们更轻松得创建… 本文以自己在工作中学习和使用.net core generic-host 作一个总结。前言在创建的ASPNETCORE项目中我们可以在Main()中看见我们通过IWebHostBuild创建了一个IWebHost而微软提供了WebHost.CreateDefaultBuilder(args)来帮助我们更轻松得创建WebHost。常常我们的需求不需要创建Web项目比如后台任务那么我们如何像使用AspNetCore一样创建控制台项目。如何在控制台程序中创建主机通过dotnet new console 创建一个控制台项目通过Nuget添加以下包Microsoft.Extensions.Hosting首先我们看下IHostBuilder接口里的方法public interface IHostBuilder{ IHost Build(); IHostBuilder ConfigureAppConfiguration(ActionHostBuilderContext, IConfigurationBuilder configureDelegate); IHostBuilder ConfigureContainerTContainerBuilder(ActionHostBuilderContext, TContainerBuilder configureDelegate); IHostBuilder ConfigureHostConfiguration(ActionIConfigurationBuilder configureDelegate); IHostBuilder ConfigureServices(ActionHostBuilderContext, IServiceCollection configureDelegate); IHostBuilder UseServiceProviderFactoryTContainerBuilder(IServiceProviderFactoryTContainerBuilder factory);}ConfigureAppConfiguration() 可以配置应用的一些配置如环境变量等等ConfigureContainer()  UseServiceProviderFactory() 可以配置替换默认的依赖注入的组件比如替换成AutofacConfigureHostConfiguration() 可以配置IConfigurationConfigureServices() 可以注入服务接下去通过以下代码我们可以构建一个简单的主机。static void Main(string[] args){ CreateDefaultHost(args).Build().Run();}static IHostBuilder CreateDefaultHost(string[] args) new HostBuilder() .ConfigureHostConfiguration(builder {//todo }) .ConfigureAppConfiguration((ctx, builder) { builder .SetBasePath(AppContext.BaseDirectory) .AddJsonFile(appsettings.json, true, true) .AddJsonFile($appsettings.{ctx.HostingEnvironment.EnvironmentName}.json, true, true) .AddEnvironmentVariables() ; }) .ConfigureServices((ctx, services) { services.AddLogging(); services.AddHostedServiceCustomHostService(); }) .UseConsoleLifetime() ;public class CustomHostService: IHostedService{private ILogger _logger;private Task _executingTask;public Task StartAsync(...){ _logger.LogInformation(${nameof(CustomHostService):}start); _executingTask ExecuteAsync(...);if(_executingTask.IsCompleted){return _executingTask; }return Task.CompletedTask; }public Task StopAsync(CancellationToken cancellationToken){return Task.WhenAny(_executingTask, Task.Delay(Timeout.Infinite, cancellationToken)); }public Task ExecuteAsync(...){ _logger.LogInformation(${nameof(CustomHostService):executing})return Task.Delay(5000); }}如上我们自定义的 CustomHostService 需要实现 IHostedService接口当然我们可以直接继承 BackgoundService 类。在实现了 IHostedService 接口后我们通过 services.AddHostedService() 进行注入或者通过 service.AddTransientIHostedService,THostedService() 进入注入。启动以上项目我们发现我们的程序默认的Hosting Environment一直是Production那么如何修改呢 ??配置环境变量在AspNetCore项目中我们可以通过设置环境变量ASPNETCORE_ENVIRONMENT的值来指定主机环境变量的。而在Generic Host 中暂时没有这一项配置。如果查看IHostBuilder的扩展我们会发现以下方法:new HostBuilder() .UseContentRoot(...) .UseEnvironment(...)...查看源代码后我们可以通过ConfigureHostConfiguration()方法将这些配置配置到主机中。现在我们假设我们以DOTNETCORE_ENVIRONMENT来指定GenericHost的环境。new HostBuilder().ConfigureHostConfiguration(builder { builder.AddInMemoryCollection(new Dictionarystring, string { [HostDefaults.EnvironmentKey] Environment.GetEnvironmentVariable(DOTNETCORE_ENVIRONMENT), })// Nuget:Microsoft.Extensions.Configuration.CommandLine//.AddCommandLine(args) ; })//...现在让我们打开命令行测试下。设置完成环境变量后我们通过dotnet run 启动程序。查看输出Host Environment 变成为 Stage# 设置环境变量$env:DOTNETCORE_ENVIRONMENTStage# 查看环境变量$env:DOTNETCORE_ENVIRONMENT当然我们也可以通过 commandline 的参数来设置启动的环境变量等值。Install-Package Microsoft.Extensions.Configuration.CommandLine在ConfigureHostConfiguration()中使用.AddCommandLine(args)来指定参数。现在我们可以通过 dotnet run --environmentDevelopment来指定dev环境了此时我们发现我们终于成功加载appsettings.Development.json中的配置信息了。使用Autofac来替代默认的 DI简单认识一下Autofac一个第三方的依赖注入容器相对Microsft.Extensions.DependencyInjection使用更加简单方便。集成到Host中通过Nuget安装以下两个包Install-Package AutofacInstall-Package Autofac.Extensions.DependencyInection我们可以使用UseServiceProviderFactory()和service.AddAutofac() 将默认的DI 替换成 Autofac;使用ConfigureContainerContainerBuilder()可以使用Autofac来注入服务//省略了非关键代码static IHostBuilder CreateDefaultHost(string[] args) new HostBuilder()//...略 .ConfigureServices((ctx, services) { services.AddLogging(x{x.AddConsole();}); services.AddAutofac(); }) .ConfigureContainerContainerBuilder(builder { builder.RegisterTypeCustomHostService() .AsIHostedService() .InstancePerDependency(); }) .UseServiceProviderFactoryContainerBuilder(new AutofacServiceProviderFactory())//...略总结个人认为出现GenericHost解决的几个痛点相对AspNetCore中的管道机制控制台程序如果不依靠GenericHost来管理Di想进行大量Microsoft.Extensions包的集成会非常困难。通过IHostedService可以方便的进行服务的托管。源码: https://github.com/missxueo/docs-generic-host原文地址https://www.cnblogs.com/myzony/p/10482113.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://www.yutouwan.com/news/155636/

相关文章:

  • 建个网站需要多少钱?上海网站建设 分类广告
  • 青海省建设厅网站备案资料个人网页设计实训报告
  • 昆明航空公司官方网站windows优化大师免费
  • 给网站做推广网站子网页怎么做
  • 高唐做网站建设的公司建站 备案
  • 在哪里可以做公司网站临清建网站
  • 国外建筑网站app百度下载app下载安装
  • 用jsp做网站的代码无锡本地模板网站建设产品
  • 青岛房产网站外链网站是什么
  • 网站管理助手ftp白云做网站SEO
  • 怎样才能建设只是于自己的网站河北专业网络营销收费公司
  • 中国住房和建设部网站首页问答论坛网站建设
  • 网站自己做还是找公司软文网站大全
  • 怎么做中英文双语网站深圳企业网站建设
  • 甘肃省建设厅网站首页网站如何做h5动态页面
  • 上海门户网站制广东网站设计费用
  • 做网站需要的图片中国建设工程质量安全管理协会网站
  • 个人网站 建设宿迁房产交易中心官网
  • 网站开发 入门教程企业邮箱注册申请126官网
  • 做物流哪个网站货源多英文外贸网站源码
  • 网站建设 维护 编程如何在网站做淘宝页面
  • 百度搜索官方网站昆山网站建设ikelv
  • 德阳建设厅官方网站阳西县网络问政平台公众号
  • 给卖假性药的做网站一般要判多久搭建一个网站需要多少钱?
  • 网站建设交印花税嘛中铁建设中南分公司
  • 成都网站建设询q479185700霸屏工程施工行业在哪个网站容易找事做
  • 青岛网站推广招商免费做手机网站
  • 有用unity做网站的吗有些网址打不开怎么解决
  • 邯郸网站建设联系电话两峡一峰旅游开发公司官方网站
  • 安徽中机诚建建设有限公司网站网站克隆 有后台登录