随笔分类 - .Net
摘要:有基础的开发者都应该很明白,对象是一个引用类型,例如: object b=new object(); object a=b; 那么a指向的是b的地址,这样在有些时候就会造成如果修改a的值,那么b的值也会跟随着改变(a和b是同一个引用内存地址)。 我们想要a和b都是各自互不影响的,那么只能是完全地新建
阅读全文
摘要:当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口。 一、开发环境 毋庸置疑,宇宙第一IDE VisualStudio 2017 二、项目结构 File
阅读全文
摘要:1. 引言 事件总线这个概念对你来说可能很陌生,但提到观察者(发布-订阅)模式,你也许就很熟悉。事件总线是对发布-订阅模式的一种实现。它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。 我们来看看事件总线的处理流程: 了解了事件总线的基本概念和处理流程
阅读全文
摘要:其实就是协变的应用,通过把对象向上转型为基类或接口类型,对它调用成员,可实现多态性,即运行时调用的是对应对象的实现版本成员。这两种方式的区别: 继承抽象类:会用掉唯一1次的继承机会,但可以继承任何成员(包括字段),自由度高 实现接口:必须实现所有成员,不能包含字段,但可以实现多个接口 抽象类可以提供
阅读全文
摘要:简介: 这是一个基础组件,是一个统一的配置模型,配置可以来源于配置文件(json文件,xml文件,ini文件),内存对象,命令行参数,系统的环境变量又或者是你自己扩展的配置源,该组件将各个配置源的数据按统一的格式(IDictionary<string, string> Data)进行加载,进而对外提
阅读全文
摘要:简介: 作为基础组件,日志组件被其他组件和中间件所使用,它提供了一个统一的编程模型,即不需要知道日志最终记录到哪里去,只需要调用它即可。 使用方法很简单,通过依赖注入ILogFactory(CreateLogger方法)或ILogger<T>对象,获取一个ILogger对象,然后通过ILogger的
阅读全文
摘要:本篇故事的起因是携程旅游网的一位技术经理,豪言壮举的扬言要通过他的超高智商,完美碾压爬虫开发人员,作为一个业余的爬虫开发爱好者,这样的言论我当然不能置之不理。因此就诞生了上一篇基础爬虫以及这一篇高级爬虫的开发教程。 有人评论我上一篇的简单爬虫:代码太过简单以至于弱爆了,真是被这群有文化的孩子给雷到了
阅读全文
摘要:前两天朋友发给我了一篇文章,是携程网反爬虫组的技术经理写的,大概讲的是如何用他的超高智商通过(挑衅、怜悯、嘲讽、猥琐)的方式来完美碾压爬虫开发者。今天我就先带大家开发一个最简单低端的爬虫,突破携程网超高智商的反爬虫技术。 一、什么是爬虫? 很多人说我们这些搞软件的人,总喜欢把虚拟世界里的事物跟现实中
阅读全文
摘要:1. out 变量(out variables) 以前我们使用out变量必须在使用前进行声明,C# 7.0 给我们提供了一种更简洁的语法 “使用时进行内联声明” 。如下所示: var input = ReadLine(); if (int.TryParse(input, out var result
阅读全文
摘要:1. 只读自动属性(Read-only auto-properties) C# 6之前我们构建只读自动属性: 原理解析:就是编译器在生成set访问器时,它的修饰符是private,由上可知所谓的只读只是针对类外部,在类内部还是可以随意修改属性值的。 C# 6中提供了真正的只读自动属性,写法如下: 原
阅读全文
摘要:周末空闲,选读了一下一本很不错的C#语言使用的书,特此记载下便于对项目代码进行重构和优化时查看。 Standing On Shoulders of Giants,附上思维导图,其中标记的颜色越深表示在实际中的实际意义越大。 做过WinForm编程的亲,一定遇到过一个InvalidOperationE
阅读全文
摘要:前言 这两天在着实研究EF Core项目当中对于一些查询也没实际去检测,于是想着利用放假时间去实际测试下,结果本文就出来了,too young,too simple,后续博主会从底层翻译表达式树弄起,来从源头了解EF Core,通过本文你会明白不是EF Core团队没做性能优化,而是你根本就没用过而
阅读全文
摘要:副作用会让代码的易懂性和正确性打折扣。用于转变全局或静态变量的方法就有副作用。用于转变其部分参数的方法也有副作用。必须通读有副作用的所有调用方法的代码,才能理解一段代码。若有多个线程,必须执行线程同步,才能正确执行有副作用的方法。 如果编写的方法没有副作用,情况又如何? 代码什么样?该如何执行? 若
阅读全文
摘要:前言 在 上一篇 文章中,我们已经学习了 ASP.NET Core MVC 的启动流程,那么 MVC 在启动了之后,当请求到达过来的时候,它是怎么样处理的呢? 又是怎么样把我们的请求准确的传达到我们的 Action 上呢? 那么,在这边文章中,我们一起跟踪源码看一下,框架都做了些什么东西。 Gett
阅读全文
摘要:前言 在 上一篇 文章中,我们学习了 ASP.NET Core MVC 的路由模块,那么在本篇文章中,主要是对 ASP.NET Core MVC 启动流程的一个学习。 ASP.NET Core 是新一代的 ASP.NET 应用程序,它是跨平台的,并且不依赖于 IIS,新的 MVC Core 设计加入
阅读全文
摘要:前言 最近打算抽时间看一下 ASP.NET Core MVC 的源码,特此把自己学习到的内容记录下来,也算是做个笔记吧。 路由作为 MVC 的基本部分,所以在学习 MVC 的其他源码之前还是先学习一下路由系统,ASP.NET Core 的路由系统相对于以前的 Mvc 变化很大,它重新整合了 Web
阅读全文
摘要:1. 引言 最近在学习Abp框架,发现Abp框架的很多Api都提供了同步异步两种写法。异步编程说起来,大家可能都会说异步编程性能好。但好在哪里,引入了什么问题,以及如何使用,想必也未必能答的上来。自己对异步编程也不是很了解,今天就以学习的目的,来梳理下同步异步编程的基础知识,然后再来介绍下如何使用a
阅读全文
摘要:C# 5 Async/Await 语法特性,极大地简化了异步编程,但我们知道,异步编程的基本原理并没有发生根本改变。也就是说,当一些复杂的东西看起来很简单时,它通常意味着有一些有趣的事情在背后发生。在计算机程序设计语言领域,我们把这些本身很复杂但看起来很简单的语言特性称为语法糖,通常情况下,我们并不
阅读全文

浙公网安备 33010602011771号