随笔分类 - C#
摘要:前几天在webapi项目中遇到一个问题:Controller构造函数中抛出异常时全局过滤器捕获不到,于是网搜一把写下这篇博客作为总结。 HttpResponseException 通常在WebAPI的Controller中抛出的未处理异常,会以500的形式返回到客户端。而HttpResponseEx
阅读全文
摘要:在实际编程中,会经常遇到多个类中的某些方法实现逻辑类似的情况,这时我们可以将这些类中的相同部分抽象到父类中,对于有差异的地方,子类根据自身的实际需求来各自实现。 以羽毛球运动为例,打球必有发接发环节,发球分正手和反手两种(这里不谈论羽球技术细节),一般男单反手发球,女单正手发球,但发接发这个环节的流
阅读全文
摘要:开发系统:Ubuntu 17.04Redis驱动:StackExchange.Redis 1.2.3Redis版本:3.2.1开发平台:.NET Core 对于Redis的介绍这里只写一句:Redis是一种基于内存的高性能非关系型数据库,它以kye-value的形式来存储数据。 核心对象 Redis
阅读全文
摘要:请求处理管道 请求管道是一些用于处理HTTP请求的模块组合,在ASP.NET中,请求管道有两个核心组件:IHttpModule和IHttpHandler。所有的HTTP请求都会进入IHttpHandler,有IHttpHandler进行最终的处理,而IHttpModule通过订阅HttpApplic
阅读全文
摘要:语言集成查询(Language-Integrated Query),简称LINQ,.NET中的LINQ体系如下图所示: 在编程语言层次,LINQ对于不同的数据源提供了相同的查询语法,方便了程序员操作不同的数据源。 可查询类型 LINQ之所以能够使用相同的语法操作不同的数据源,是因为和LINQ直接打交
阅读全文
摘要:为了让.Net中的值类型可以赋值为null,微软特地添加了Nullable<T>类型,也可简写为T?。但是Nullable<T>自身是结构体,也是值类型,那么它是如何实现将null赋值给值类型的呢? 下面通过自定义一个可空值类型来讲解Nullable<T>的实现原理。 自定义可空值类型 一个可空值类
阅读全文
摘要:对于大量数据的查询和展示使用分页是一种不错的选择,这篇文章简要介绍下自己实现分页查询的思路。 分页需要三个变量:数据总量、每页显示的数据条数、当前页码。 根据数据总量和每页显示的数据条数计算出总页数,根据当前页码和每页显示的数据条数计算出从数据库中读取数据的起始行号和结束行号。 对于数据库的查询操作
阅读全文
摘要:引言 接口和抽象类是面向对象编程(OOP, Object Oriented programming)中两个绕不开的概念,二者相似而又有所不同。接下来,我们来了解二者的概念并比较它们的异同。 什么是抽象类型? 抽象类是一种特殊的类,该类不能被实例化。抽象类的存在就是为了被继承,即抽象类可以被其它类继承
阅读全文
摘要:功能需求 先说说自己的实现思路: 实现 首先创建一个接口,用于约束水印的创建方式: 具体实现: public class Watermark : IWatermark { //水印画布 protected virtual Rectangle WatermarkCanvas { set; get; }
阅读全文
摘要:什么是ModelBinding ASP.NET MVC中,所有的请求最终都会到达某个Controller中的某个Action并由该Action负责具体的处理和响应。为了能够正确处理请求,Action的参数(如果有的话),必须在Action执行之前,根据相应的规则,把请求中所包含的数据提取出来并将映射
阅读全文
摘要:Model验证是ASP.NET MVC中的重要部分,它主要用于判断输入的数据类型及值是否符合我们设定的规则,这篇文章就介绍下ASP.NET MVC中Model验证的几种方式。 后台验证 DataAnnotation ValidationAttribute IValidatableObject IDa
阅读全文
摘要:什么是异步编程 什么是异步编程呢?举个简单的例子: 上面这段代码中,Main方法中的代码是按照自上而下的顺序执行的。网络状况不佳时,Start()方法是比较耗时(注意,这里在Start方法中调用了异步方法GetStringAsync,但该方法在此处是以同步方式执行的,具体原因下文会进行说明),在St
阅读全文
摘要:1. Domain Domain表示Cookie所在的域(如:www.baidu.com),对于Cookie的访问是不能跨域的(如:我们无法在www.baidu.com下访问www.google.com中的Cookie),但当前域中的cookie可以在子域中访问,反之则不行; 2. Path Pat
阅读全文
摘要:本文主要介绍如何使用CodeFirst模式来新建并更新数据库 在使用Entity Framwork的三种方式(ModelFist、DBFirst、CodeFirst)中,CodeFirst方式书写的代码最为干净。 至于CodeFist方式的详细优缺点请各位读者自行搜索,这里不多赘述。 1. 使用Co
阅读全文
摘要:昨天研究在.NET下开发Windows服务程序,期间遇到一些小问题,这里仅将自己的开发过程和需要注意的地方写下和广大网友分享…… 1、基础 Windows服务是指系统启动时能够自己运行的程序。Windows服务可以在没有交互界面的情况下在后台进行业务的处理。 .NET下开发Windows服务需要几个
阅读全文
摘要:看过一些C#教程的人都应该知道这句话:“在C#中,一旦对字符串对象进行初始化,该字符串对象就不能再被该变“。这句话可用简单的图示来说明: 1、声明变量 string str="first"; 在执行这句代码时,首先在栈上开辟出一块儿内存空间用于存放变量str,然后在堆上开辟出一块儿空间用于存放字符串
阅读全文

浙公网安备 33010602011771号