zoukankan      html  css  js  c++  java
  • jQuery火箭图标返回顶部代码

    .net core 3.1 今天已正式发布,3.1跟3.0差别不是很大,主要是对 3.0一小部分修复和完善,最重要的是.NET Core 3.1是长期支持(LTS)版本,建议大家升级。

    .net core 2.2 这个月就要停止维护,并且微软将不再提供支持,如果你在使用 2.2 ,建议升级到 3.1,可以先升级到3.0,可以参考文档:

    ASP.NET Core 2.2 迁移到3.0:https://docs.microsoft.com/zh-cn/aspnet/core/migration/22-to-30?view=aspnetcore-3.0&tabs=visual-studio

    如果在使用 2.1,可以暂时不用着急升级,2.1也是 LTS 版本

    ASP.NET Core 3.0的新增功能:https://docs.microsoft.com/zh-cn/aspnet/core/release-notes/aspnetcore-3.0?view=aspnetcore-3.0

    替换AutoFac服务

    在 .Net Core 3.0 之前的时候,返回一个 IServiceProvider 注入到ConfigureServices服务中。

    用 .Net Core 3.0 框架运行之后会报错:ConfigureServices returning an System.IServiceProvider isn't supported.

    找文档之后发现 3.0 中 ConfigureServices 已经不支持返回 IServiceProvider 。

    .Net Core 2.2的写法

            /// <summary>
            /// //负责注入服务
            /// </summary>
            /// <param name="services"></param>
            /// <returns></returns>
            public IServiceProvider ConfigureServices(IServiceCollection services)
            {
                //初始化容器
                var builder = new ContainerBuilder();
                //管道寄居
                builder.Populate(services);
                //业务逻辑层所在程序集命名空间
                Assembly service = Assembly.Load("NetCoreDemo.Service");
                //接口层所在程序集命名空间
                Assembly repository = Assembly.Load("NetCoreDemo.Repository");
                //自动注入
                builder.RegisterAssemblyTypes(service, repository)
                    .Where(t => t.Name.EndsWith("Service"))
                    .AsImplementedInterfaces();
                //注册仓储,所有IRepository接口到Repository的映射
                builder.RegisterGeneric(typeof(Repository<>))
                    //InstancePerDependency:默认模式,每次调用,都会重新实例化对象;每次请求都创建一个新的对象;
                    .As(typeof(IRepository<>)).InstancePerDependency();
                //构造
                ApplicationContainer = builder.Build();
                //将AutoFac反馈到管道中
                return new AutofacServiceProvider(ApplicationContainer);
            }

    .Net Core 3.0的写法

    修改 Program.cs 将默认ServiceProviderFactory指定为AutofacServiceProviderFactory

        public class Program
        {
            public static void Main(string[] args)
            { 
                CreateHostBuilder(args).Build().Run();
            }
    
            public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                     //将默认ServiceProviderFactory指定为AutofacServiceProviderFactory
                    .UseServiceProviderFactory(new AutofacServiceProviderFactory())
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseStartup<Startup>();
                        webBuilder.UseUrls("http://*:8004");
                    });
        }

    然后在 Startup.cs 中添加 ConfigureContainer 方法

    使用ConfigureContainer访问Autofac容器生成器,并直接向Autofac注册。

            public void ConfigureContainer(ContainerBuilder builder)
            {
                //业务逻辑层所在程序集命名空间
                Assembly service = Assembly.Load("NetCoreDemo.Service");
                //接口层所在程序集命名空间
                Assembly repository = Assembly.Load("NetCoreDemo.Repository");
                //自动注入
                builder.RegisterAssemblyTypes(service, repository)
                    .Where(t => t.Name.EndsWith("Service"))
                    .AsImplementedInterfaces();
                //注册仓储,所有IRepository接口到Repository的映射
                builder.RegisterGeneric(typeof(Repository<>))
                    //InstancePerDependency:默认模式,每次调用,都会重新实例化对象;每次请求都创建一个新的对象;
                    .As(typeof(IRepository<>)).InstancePerDependency();
            }

    参考:https://docs.autofac.org/en/latest/integration/aspnetcore.html#asp-net-core-3-0-and-generic-hosting

  • 相关阅读:
    学习完vue指令 做的一个学生信息录入系统
    vue常用指令总结
    vue介绍以及相关概念理解大全
    class类
    javascript闭包详解
    前端必看网站(一直更新中)
    微信小程序wx.getUserInfo获取用户信息
    微信小程序自定义组件注意事项
    微信小程序自定义选项卡
    uni-app开发注意事项及常用样式
  • 原文地址:https://www.cnblogs.com/tenghao510/p/11984473.html
Copyright © 2011-2022 走看看