时间:2017年04月11日 | 作者 : aaronyang | 分类 : vs2017 | 浏览: 2606次 | 评论 0 人
====================www.ayjs.net 杨洋 wpfui.com ayui ay aaronyang=======请不要转载谢谢了。=========
装了最新的vs2017 企业版了
学习Core
这我直接使用了.net4.6.2了,新建标准库
修改如下
单击确定
通过nuget增加 Newtonsoft.Json 的引用更改Class1.cs为Thing.cs 特色1:方法可以直接不用花括号了,可以直接lambda
using System; namespace Library { public class Thing { public int Get(int number) => Newtonsoft.Json.JsonConvert.DeserializeObject<int>($"{number}"); } }
保存,重新生成解决方案
====================www.ayjs.net 杨洋 wpfui.com ayui ay aaronyang=======请不要转载谢谢了。=========
右键解决方案,新建.net core方式的 单元测试
重命名UnitTest1.cs 为LibraryTests.cs 添加引用
完成后,类代码如下:
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using Library; namespace TestLibrary { [TestClass] public class LibraryTests { [TestMethod] public void ThingGetsObjectValFromNumber() { Assert.AreEqual(42, new Thing().Get(42)); } } }
选择测试资源管理器
点击全部运行,不出意外,测试会通过的
同理,我们新建 .net core的控制台应用
新建完成,同理测试那样,引用Library库
然后编写控制台代码:
using Library; using System; using static System.Console; namespace AYApp { class Program { static void Main(string[] args) { WriteLine($"问题答案是 {new Thing().Get(42)}."); ReadLine(); } } }
效果如下,但是貌似乱码了:
添加测试代码:
using Library; using System; using System.Text; using static System.Console; namespace AYApp { class Program { static void Main(string[] args) { try { WriteLine(Encoding.GetEncoding(936)); } catch (Exception ex) { WriteLine(ex.Message); } try { WriteLine(Encoding.GetEncoding("GB2312")); } catch (Exception ex) { WriteLine(ex.Message); } WriteLine($"问题答案是 {new Thing().Get(42)}."); ReadLine(); } } }
我们提供的两种中文编码在默认情况下都不支持,是因为默然情况下它们的EncodingProvider没有注册。上面显示的错误消息其实也提到了这几点,并且提到一个用于注册EncodingProvider的方法(Encoding.RegisterProvider)。于是我们按照下面的方式注册一个CodePageEncodingProvider。
发现CodePagesEncodingProvider报错的,
CodePageEncodingProvider定义在NuGet包“System.Text.Encoding.CodePages”之中,所以我们需要现在Project.json文件中按照如下的方式注册对应的依赖。
添加成功后,
using Library; using System; using System.Text; using static System.Console; namespace AYApp { class Program { static void Main(string[] args) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); WriteLine($"问题答案是 {new Thing().Get(42)}."); ReadLine(); //WriteLine(Encoding.GetEncoding(936)); //WriteLine(Encoding.GetEncoding("GB2312")); //while (true) //{ // Console.WriteLine(Console.ReadLine()); //} //try //{ // WriteLine(Encoding.GetEncoding(936)); //} //catch (Exception ex) //{ // WriteLine(ex.Message); //} //try //{ // WriteLine(Encoding.GetEncoding("GB2312")); //} //catch (Exception ex) //{ // WriteLine(ex.Message); //} } } }
效果如下:
终于不乱码了。
到此,AY的第一篇 .NET Core2 入门教程就结束了。
====================www.ayjs.net 杨洋 wpfui.com ayui ay aaronyang=======请不要转载谢谢了。=========
抖音:wpfui 工作wpf,目前主maui
招聘合肥一枚WPF工程师,跟我一个开发组,10-15K,欢迎打扰
目前在合肥市企迈科技就职
AYUI8全源码 Github地址:前往获取
杨洋(AaronYang简称AY,安徽六安人)和AY交流
高中学历,2010年开始web开发,2015年1月17日开始学习WPF
声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费
不是从我处购买的ayui7源码,我不提供任何技术服务,如果你举报从哪里买的,我可以帮你转正为我的客户,并送demo
查看捐赠AYUI7.X MVC教程 更新如下:
第一课 第二课 程序加密教程
额 本文暂时没人评论 来添加一个吧
发表评论