当前位置 博文首页 > 文章内容

    .NET Core笔记-Host

    作者: 栏目:未分类 时间:2020-09-12 17:00:42

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    IHost接口:

        public interface IHost : IDisposable
        {
            IServiceProvider Services {get;}
    
            Task StartAsync(CancellationToken cancellationToken = default(CancellationToken));
    
            Task StopAsync(CancellationToken cancellationToken = default(CancellationToken));
        }
    

    Services属性,通过该属性可以拿到所有Host初始化时所注入的对象信息
    IHostBuilder接口所承担的核心功能就是程序的初始化,通过:IHost Build()来完成,
    IHostBuilder初始化内容包括以下功能:

    HostConfiguration、HostingEnvironment、HostBuilderContext、ServiceCollection
    

    以上功能的初始化是通过IHostBuilder提供的接口获取用户输入的信息后,通过调用Build()方法来完成初始化。以下为IHostBuilder接口代码:

        public interface IHostBuilder
        {
            IDictionary<object, object> Properties
            {
                get;
            }
    
            IHostBuilder ConfigureHostConfiguration(Action<IConfigurationBuilder> configureDelegate);//配置HostConfiguration
    
            IHostBuilder ConfigureAppConfiguration(Action<HostBuilderContext, IConfigurationBuilder> configureDelegate);
    
            IHostBuilder ConfigureServices(Action<HostBuilderContext, IServiceCollection> configureDelegate);//配置ServiceCollection
    
            IHostBuilder UseServiceProviderFactory<TContainerBuilder>(IServiceProviderFactory<TContainerBuilder> factory);
    
            IHostBuilder UseServiceProviderFactory<TContainerBuilder>(Func<HostBuilderContext, IServiceProviderFactory<TContainerBuilder>> factory);
    
            IHostBuilder ConfigureContainer<TContainerBuilder>(Action<HostBuilderContext, TContainerBuilder> configureDelegate);
    
            IHost Build();
        }
    

    IHostApplicationLifetime接口:
    Host生命周期订阅接口,该接口提供了一种我们可以在程序运行期间进行管理的功能,如程序的启动与停止事件的订阅。

    public interface IHostApplicationLifetime
        {
            CancellationToken ApplicationStarted
            {
                get;
            }
    
            CancellationToken ApplicationStopping
            {
                get;
            }
    
            CancellationToken ApplicationStopped
            {
                get;
            }
    
            void StopApplication();
        }
    

    订阅声明周期事件:

     applicationLifetime.ApplicationStarted.Register(() =>
                {
                    app.ApplicationServices.GetService<ShopInfoexBus>().SyncSsoShop(); //同步SSO店铺信息
                });