.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
大致的包參考下面的圖片,引用時注意包的版本號