zoukankan      html  css  js  c++  java
  • Asp.netCore 的Startup 不继承接口

    有一个问题: Asp.netCore 的Startup 要实现 Config 和ConfigServie 方法, 为什么不接口约束呢。

    进入源码:

        //
            // 摘要:
            //     /// Specify the startup type to be used by the web host. ///
            //
            // 参数:
            //   hostBuilder:
            //     The Microsoft.AspNetCore.Hosting.IWebHostBuilder to configure.
            //
            //   startupType:
            //     The System.Type to be used.
            //
            // 返回结果:
            //     The Microsoft.AspNetCore.Hosting.IWebHostBuilder.
            public static IWebHostBuilder UseStartup(this IWebHostBuilder hostBuilder, Type startupType)
            {
                string name = startupType.GetTypeInfo().Assembly.GetName().Name;
                return hostBuilder.UseSetting(WebHostDefaults.ApplicationKey, name).ConfigureServices(delegate (IServiceCollection services)
                {
                    if (IntrospectionExtensions.GetTypeInfo(typeof(IStartup)).IsAssignableFrom(startupType.GetTypeInfo()))
                    {
                        services.AddSingleton(typeof(IStartup), startupType);
                    }
                    else
                    {
                        services.AddSingleton(typeof(IStartup), delegate (IServiceProvider sp)
                        {
                            IHostingEnvironment requiredService = sp.GetRequiredService<IHostingEnvironment>();
                            return new ConventionBasedStartup(StartupLoader.LoadMethods(sp, startupType, requiredService.EnvironmentName));
                        });
                    }
                });
            }

    这里会判断这个StartUp 是否有IStartUp 约束。

    这在后面会创建IStartUp 的。这里设置了依赖注入。

    没有约束,会根据环境给这个类增加东西的。

    气功波(18037675651)
  • 相关阅读:
    微信小程序:动画(Animation)
    小程序滚动事件之头部渐隐渐现demo
    小程序tab栏可滑动,可点击居中demo
    ES7中前端异步特性:async、await。
    vue中生成二维码
    vue之vue-cookies
    echarts中boundaryGap属性
    ES6数组方法总结
    手写自己的ORM框架For SQlServer(简单的CURD)
    Sqlsever新增作业执行计划傻瓜式操作
  • 原文地址:https://www.cnblogs.com/qgbo/p/11978109.html
Copyright © 2011-2022 走看看