.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

大致的包參考下面的圖片,引用時注意包的版本號

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM