zoukankan      html  css  js  c++  java
  • .Net Core控制台应用程序使用依赖注入、配置文件等

    .Net Core作为一门新语言,资料实在是太少了,并且国内学习的人也不多,虽然性能还行也跨平台了但是生态圈不发展起来也不行

    刚出来的时候用 .Net Core + Dapper + Mysql 弄了个简单的CMS,过了这么久了版本也更新了以前的一些包也要更新了,所以重新整了下

    今天想用.Net Core控制台程序弄个多线程爬虫,因为我的一些公共的方法都是.Net Core写的,想复用结果遇到太多坑。。。

    坑1:中文编码问题,.Net Core控制台程序中文乱码

    解决:引入 System.Text.Encoding.CodePages 包并在Main方法开始时注册

    //编码注册
                Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

    坑2:依赖注入问题

    解决:参考dudu文章:http://www.cnblogs.com/dudu/p/5552293.html

    坑3:配置文件问题,比如Mysql链接字符串,Redis链接字符串等都是在配置文件中读取

            static void Main(string[] args)
            {
                //编码注册
                Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
    
                //配置文件
                var builder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                .AddEnvironmentVariables();
                IConfigurationRoot configuration = builder.Build();
    
                //依赖注入
                IServiceCollection services = new ServiceCollection();
                services.AddOptions();
                services.Configure<AppSettings>(configuration.GetSection("AppSettings")); //配置文件
                services.AddTransient<IArticleService, ArticleService>();
                services.AddTransient<MySQLConnection, MySQLConnection>();
                IServiceProvider serviceProvider = services.BuildServiceProvider();
                //解析
                GetContent(serviceProvider);
    
                //AddQueue(settingModel);
                Console.ReadKey();
            }

    反正最后就是这样了,中文乱码、依赖注入、配置文件读取都解决了

    有一些包的引用参考Web下的Startup.cs

    大致的包参考下面的图片,引用时注意包的版本号

  • 相关阅读:
    Linux_23 DNS 正向解析区域、反向解析区域;主/从;子域;基本安全控制
    Linux_22 加密和解密及OpenSSL
    Linux_21 日志系统、ssh服务、系统安装及系统故障排除
    Linux_20 子网划分
    Akavache简明使用指南
    Oracle存储过程解析XML内容
    docker部署微服务不支持中文字体的解决方案
    Three.js
    Three.js
    [Linux] vim状态栏配置
  • 原文地址:https://www.cnblogs.com/ideacore/p/6973495.html
Copyright © 2011-2022 走看看