当前位置:网站首页 / vs2017 / 正文

AY 的 vs2017 .net core2 研究学习[1]

时间:2017年04月11日 | 作者 : aaronyang | 分类 : vs2017 | 浏览: 2261次 | 评论 0

====================www.ayjs.net       杨洋    wpfui.com        ayui      ay  aaronyang=======请不要转载谢谢了。=========

装了最新的vs2017 企业版了

blob.png

学习Core

这我直接使用了.net4.6.2了,新建标准库

blob.png

修改如下

blob.png

单击确定


通过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方式的 单元测试

blob.png

重命名UnitTest1.cs 为LibraryTests.cs    添加引用

blob.png

完成后,类代码如下:

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));
        }
    }
}

选择测试资源管理器

blob.png

点击全部运行,不出意外,测试会通过的

blob.png


blob.png



同理,我们新建 .net core的控制台应用

blob.png

新建完成,同理测试那样,引用Library库

然后编写控制台代码:

using Library;
using System;
using static System.Console;

namespace AYApp
{
    class Program
    {
        static void Main(string[] args)
        {
            WriteLine($"问题答案是 {new Thing().Get(42)}.");
            ReadLine();
        }
    }
}


效果如下,但是貌似乱码了:

blob.png

添加测试代码:

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();
        }
    }
}

blob.png

我们提供的两种中文编码在默认情况下都不支持,是因为默然情况下它们的EncodingProvider没有注册。上面显示的错误消息其实也提到了这几点,并且提到一个用于注册EncodingProvider的方法(Encoding.RegisterProvider)。于是我们按照下面的方式注册一个CodePageEncodingProvider。


blob.png

发现CodePagesEncodingProvider报错的,

CodePageEncodingProvider定义在NuGet包“System.Text.Encoding.CodePages”之中,所以我们需要现在Project.json文件中按照如下的方式注册对应的依赖。


blob.png

添加成功后,

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);
            //}


        }
    }
}

效果如下:

blob.png

终于不乱码了。



到此,AY的第一篇 .NET Core2 入门教程就结束了。



====================www.ayjs.net       杨洋    wpfui.com        ayui      ay  aaronyang=======请不要转载谢谢了。=========




推荐您阅读更多有关于“vs2017net core2,”的文章

猜你喜欢

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  查看权限

合肥科大智能常年招聘C# .NET CORE,vue前端,JAVA开发,有想换工作的私聊我AY唯一QQ:875556003和AY交流

抖音号:wpfui 工作是wpf,不接活,目前主要折腾maui

AYUI8社区版Github地址:前往获取

杨洋(AaronYang简称AY,安徽六安人)目前是个人,还没公司AY唯一QQ:875556003和AY交流

高中学历,2010年开始web开发,2015年1月17日开始,兴趣学习研究WPF

声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费.AY主要靠卖技术服务挣钱

不是从我处购买的ayui7源码,我不提供任何技术服务,如果你举报从哪里买的,我可以帮你转正为我的客户,并送demo

查看捐赠

AYUI7.X MVC教程 更新如下:

第一课 第二课 程序加密教程

vs2015 企业版密钥HM6NR-QXX7C-DFW2Y-8B82K-WTYJV

vs2017 企业版密钥NJVYC-BMHX2-G77MM-4XJMR-6Q8QF

标签列表