.有关怎么创建Core MVC/API 这里就不说了,前段时间的博客有说过:

1.  项目生成后会有如图所示两个类 Program类Startup类

2. Startup类  初始内容

        public void ConfigureServices(IServiceCollection services)
        {
            //运行时调用此方法。使用此方法向容器添加服务。
        }

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            //运行时调用此方法。使用此方法配置HTTP请求管道
        }

2.1  ConfigureServices 方法 使用  添加 MVC服务/EF/添加自定义服务

 public void ConfigureServices(IServiceCollection services)
        {
            //注入MVC的服务
            services.AddMvc();
            // 添加 EF 服务     可以添加多个 使用多个EF 多个库
            //services.AddEntityFrameworkSqlServer().AddDbContext<EFDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("SqlServer")));
            // services.AddEntityFrameworkSqlServer().AddDbContext<EFLogDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("SqlServerLog")));

            services.AddMvc();
            // 添加自定义服务 :详见 IServiceCollection
        }

2.2   Configure 方法的使用  MVC路由/静态文件/错误日志等

有关  IHostingEnvironment  (https://msdn.microsoft.com/zh-cn/library/system.web.hosting.hostingenvironment.aspx)

    //重新定义 IHostingEnvironment
        public IHostingEnvironment HostingEnvironment { get; }
        //运行时调用此方法。使用此方法配置HTTP请求管道
        public void Configure(IApplicationBuilder app)
        {
            //判断当前的运行环境  是否是  Microsoft   如果是则返回true
            // 如果要判断其他的运行环境比如Linux    可以用  env.IsEnvironment("environmentname")   要验证的环境名称   忽略大小写
            if (HostingEnvironment.IsDevelopment())
            {
                //抓取错误信息 把错误信息生成  HTML
                //关于这个等写到关于错误处理的时候详细说明****************************
                app.UseDeveloperExceptionPage();
            }
            else
            {
                //自定义错误信息帮助页
                app.UseExceptionHandler("/Home/Error");
            }
            //已被重写
            //if (env.IsDevelopment())
            //{
            //    app.UseDeveloperExceptionPage();
            //}

            //使用MVC默认路由
            app.UseMvcWithDefaultRoute();
            app.UseMvc();  //使用MVC的管道路径  可以在这里配置路由等操作
            //app.UseMvc(
            //   routes =>
            //   {
            //       routes.MapRoute(
            //      name: "User",
            //      template: "{controller}/{action}/{id?}",
            //      defaults: new { controller = "User", action = "Index" });
            //   });
            //app.UseMvc(routes =>
            //{
            //    routes.MapRoute(
            //        name: "default",
            //        template: "{controller}/{action=Index}/{id?}");
            //});

        }

2. Program类  初始内容

   public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .Build();
    }

2.1  实现不依赖 Startup 启动程序      可以直接在 Program 类中 构建  扩展,配置,配置 ,扩展,日志

    public class Program
    {
        public static IServiceCollection services { get; set; }
        public static IHostingEnvironment HostingEnvironment { get; set; }
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                    //构建  扩展,配置,配置 ,扩展,日志,ILoggerFactory
                    .ConfigureAppConfiguration((WebHostBuilderContext, config) =>
                    {
                        HostingEnvironment = WebHostBuilderContext.HostingEnvironment;
                    })
                .ConfigureServices((IServiceCollection, services) =>
                 {
                     services.AddMvc();
                 })
            .Configure(app =>
            {
                if (HostingEnvironment.IsDevelopment())
                {
                    app.UseDeveloperExceptionPage();
                }
                else
                {
                    app.UseExceptionHandler("/Error");
                }
                //使用MVC默认路由
                app.UseMvcWithDefaultRoute();
                //使用静态文件
                app.UseStaticFiles("");
                //配置路由
                app.UseMvc(routes =>
                {
                    routes.MapRoute(
                        name: "default",
                        template: "{controller}/{action=Index}/{id?}");
                });
            })
                //被替换掉的启动项
                //  .UseStartup<Startup>()
                .Build();
    }

不足之处,请大家指出相互学习

 

AspNet Core Web 应用程序的启动(有关 Program.cs类/ Startup.cs类 ) 当项目中干掉 Startup.cs 类如何设置启动 配置等等的更多相关文章

  1. 设计模式(一)单例模式:创建模式 ASPNET CORE WEB 应用程序的启动 当项目中 没有STARTUP.CS 类如何设置启动 配置等等

    设计模式(一)单例模式:创建模式 先聊一下关于设计的几个原则(1)单一原则(SRP):一个类应该仅有一个引起它变化的原因 :意思就是 (一个类,最好只负责一件事情,并且只有一个引起它变化的原因(2)开 ...

  2. AspNet Core Web 应用程序的启动 当项目中 没有Startup.cs 类如何设置启动 配置等等

    感叹: Core 16年6月1号 在中国宣布上线 到现在已经快经历两年时间了,目前版本已经到了2.0 就目前的前景来看,个人感觉 到2020年才可能有所起色,等到Core更成熟 个人看法:在.net这 ...

  3. Asp.Net Core Web应用程序—探索

    前言 作为一个Windows系统下的开发者,我对于Core的使用机会几乎为0,但是考虑到微软的战略规划,我觉得,Core还是有先了解起来的必要. 因为,目前微软已经搞出了两个框架了,一个是Net标准( ...

  4. 使用docker部署Asp.net core web应用程序

    拉取aspnetcore最新docker镜像 aspnetcore的docker镜像在docker官网是有的,是由微软提供的.它的依赖镜像是microsoft/dotnet.通过访问网址:https: ...

  5. ASP.NET Core Web 应用程序系列(五)- 在ASP.NET Core中使用AutoMapper进行实体映射

    本章主要简单介绍下在ASP.NET Core中如何使用AutoMapper进行实体映射.在正式进入主题之前我们来看下几个概念: 1.数据库持久化对象PO(Persistent Object):顾名思义 ...

  6. ASP.NET Core Web 应用程序系列(三)- 在ASP.NET Core中使用Autofac替换自带DI进行构造函数和属性的批量依赖注入(MVC当中应用)

    在上一章中主要和大家分享了在ASP.NET Core中如何使用Autofac替换自带DI进行构造函数的批量依赖注入,本章将和大家继续分享如何使之能够同时支持属性的批量依赖注入. 约定: 1.仓储层接口 ...

  7. ASP.NET Core Web 应用程序系列(二)- 在ASP.NET Core中使用Autofac替换自带DI进行批量依赖注入(MVC当中应用)

    在上一章中主要和大家分享在MVC当中如何使用ASP.NET Core内置的DI进行批量依赖注入,本章将继续和大家分享在ASP.NET Core中如何使用Autofac替换自带DI进行批量依赖注入. P ...

  8. ASP.NET Core Web 应用程序系列(一)- 使用ASP.NET Core内置的IoC容器DI进行批量依赖注入(MVC当中应用)

    在正式进入主题之前我们来看下几个概念: 一.依赖倒置 依赖倒置是编程五大原则之一,即: 1.上层模块不应该依赖于下层模块,它们共同依赖于一个抽象. 2.抽象不能依赖于具体,具体依赖于抽象. 其中上层就 ...

  9. ASP.NET Core Web 应用程序开发期间部署到IIS自定义主机域名并附加到进程调试

    想必大家之前在进行ASP.NET Web 应用程序开发期间都有用到过将我们的网站部署到IIS自定义主机域名并附加到进程进行调试. 那我们的ASP.NET Core Web 应用程序又是如何部署到我们的 ...

随机推荐

  1. eclipse设置author等注释

    windows--> preference--> PyDev --> Editor --> Templates 点击New,新建一个template,输入name(之后选择这个 ...

  2. Arrays.asList()生成的List抛UnsupportedOperationException分析

    一.背景:使用工具类 Arrays.asList()把数组转换成集合时,使用其修改集合相关的方 法,它的 add/remove/clear 方法会抛出 UnsupportedOperationExce ...

  3. STL之list容器的实现框架

    说明:本文仅供学习交流,转载请标明出处.欢迎转载! list的底层採用数据结构是环形的双向链表. 相对于vector容器.list容器插入和删除操作付出的代价要比vector容器小得多,可是list带 ...

  4. 原生JS与jQuery操作DOM对比

    一.创建元素节点 1.1 原生JS创建元素节点 document.createElement("p"); 1.2 jQuery创建元素节点 $('<p></p&g ...

  5. Hello Docker

    Docker: Build, Ship, and Run Any App, Anywhere 在任何地方构建.交付和运行任何应用 1. 引言 最近简单的学习了下Docker,本文先简要梳理下Docke ...

  6. 自学Python5.3-内置模块(1)

    内置模块(1)内置模块是Python自带的功能,在使用内置模块相应的功能时,需要  先导入 再 使用  1.OS模块       用于提供系统级别的操作: os.getcwd() 获取当前工作目录,即 ...

  7. 获取AJAX加载的内容

    1.有些网页内容使用AJAX加载,AJAX一般返回的是JSON,直接对AJAX地址进行post或get,就返回JSON数据了. 2.用抓包工具分析https://movie.douban.com/j/ ...

  8. eclipse 代码 editor 界面出现奇怪符号解决

    Preferences->General->Editors->Text Editors->去掉 Show whitespace characters->apply

  9. 单点登录,session,jsonp(待更新)

    单点登录理解: 单点登录系统设计: ajax跨域:

  10. C#设计模式之二十二访问者模式(Visitor Pattern)【行为型】

    一.引言   今天我们开始讲"行为型"设计模式的第九个模式,该模式是[访问者模式],英文名称是:Visitor Pattern.如果按老规矩,先从名称上来看看这个模式,我根本不能获 ...