细说.net core Startup

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了细说.net core Startup相关的知识,希望对你有一定的参考价值。

参考技术A Startup类配置服务和应用程序的请求管道。

可以在项目中为不同的环境分别定义独立的启动类Startup(如, StartupDevelopment),系统启动时会选择适当的启动类。ASP.NET 并不关心 Startup 类是不是定义为 public,如果它符合命名规范,ASP.NET 将继续加载它。如果有多个 Startup 类,也不会触发异常,ASP.NET 将基于命名空间选择其中一个(匹配项目的根命名空间的启动类优先,否则使用第一个按字母排列的命名空间中的启动类)。

web host通过启动类的构造函数提供了一些有效可用服务。应用程序还可以通过ConfigureServices增加额外的服务。主机配置的服务和ConfigureServices增加的额外的服务在整个应用程序中都是有效可用的。

Configure 方法用于指定应用程序如何响应HTTP请求。请求的管道通过向IApplicationBuilder实例中添加中间件组件j进行配置。IApplicationBuilder在Configure方法中是可用的,但它没有在服务容器中注册。托管将会创建一个IApplicationBuilder并直接将其传递给Configure方法。
ASP.NET Core 模板配置了一个支持开发的异常页面管道,适用于BrowserLink,错误页面,静态文件,ASP。NET MVC:

每个 Use 扩展方法都会把一个 中间件 加入请求管道。比如 UseMvc 扩展方法会把 路由中间件 加进请求管道,并把 MVC 配置为默认的处理器。

.net core 在Startup.cs 的Configure方法中扩展 IApplicationBuilder

 

 

using System;
using System.Collections.Generic;
using System.IO;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;

namespace Bayantu.Evos.WebApps.GJExhibition.Infrastructure.Extensions
{
    public static class DomainConfigExtensions
    {

        public static IApplicationBuilder DomainConfigToJs(this IApplicationBuilder app, IConfiguration configuration)
        {
            string directoryPath = @"wwwroot//exhibition//static//js";          //设置文件路径
            if (!Directory.Exists(directoryPath))
            {
                Directory.CreateDirectory(directoryPath);                
            }

            // 文件路径
            var filePath = directoryPath + + @"//domain.js";if (File.Exists(filePath))
            {
                ReadWriteContent(filePath, configuration);
            }
            else
            {
                FileStream fs = new FileStream(filePath, FileMode.CreateNew);
                fs.Close();

                ReadWriteContent(filePath, configuration);                
            }

            Func<RequestDelegate, RequestDelegate> middleware = next =>
            {
                return context =>
                {
                    return next(context);
                };
            };

            return app.Use(middleware);
        }

        private static void ReadWriteContent(string filePath, IConfiguration configuration) 
        {
            StreamWriter sw = new StreamWriter(filePath);
            JsContent(sw, configuration);
            sw.Flush();
            sw.Close();
        }

        public static void JsContent(StreamWriter sw, IConfiguration configuration) 
        {
            sw.WriteLine("window.domainConfig = {");

            sw.WriteLine($"\'NewFileDomain\': \'{configuration["DomainConfig:NewFileDomain"]}\',");

            sw.WriteLine("}");
        }
    }
}

 

以上是关于细说.net core Startup的主要内容,如果未能解决你的问题,请参考以下文章

细说ASP.NET Forms身份认证

细说ASP.NET Forms身份认证

细说Asp.Net Web API消息处理管道

细说Asp.Net WebAPI消息处理管道

细说 CSS margin

细说shiro之在web应用中使用shiro