摘要: 以下是代码: 1 using System; 2 /// <summary> 3 /// Dispose Pattern 4 /// </summary> 5 /// <remarks> 6 /// 由逻辑可知: 7 /// 1.不管是手动调用Dispose方法还是系统自动调用析构函数,均会执行【非 阅读全文
posted @ 2018-12-21 16:30 X-Cracker 阅读(701) 评论(0) 推荐(0) 编辑
摘要: 以下Demo代码基于 .NET Core 演示了Postsharp的基本使用方法,稍作修改(反射部分有些许差异)也适用于.NET Framework。更多高级使用方法详见官方文档。http://samples.postsharp.net/ 阅读全文
posted @ 2018-11-26 15:51 X-Cracker 阅读(2163) 评论(0) 推荐(0) 编辑
摘要: 在这篇文章,我将分享一些在ASP.NET Core程序中使用依赖注入的个人经验和建议。这些原则背后的动机如下: 高效地设计服务和它们的依赖。 预防多线程问题。 预防内存泄漏。 预防潜在的BUG。 这篇文章假设你已经基本熟悉依赖注入和ASP.NET Core。如果不是,则先阅读文章: 在ASP.NET 阅读全文
posted @ 2018-08-16 16:50 X-Cracker 阅读(1453) 评论(0) 推荐(1) 编辑
摘要: 1.背景 最近团队开发的数据库组件需要通过HTTP请求方式从配置中心获取连接字符串,该组件采用.NET 6进行开发。考虑到并发的情况,因此对获取连接字符串的方法进行了加锁,并进行了双重检测(double-checking)。 由于组件框架使用.NET 6,我们采用了HttpClient组件进行HTT 阅读全文
posted @ 2023-07-01 04:28 X-Cracker 阅读(115) 评论(0) 推荐(1) 编辑
摘要: 本文告诉大家如何使用 msbuild 的 ProduceOnlyReferenceAssembly 功能,将某个程序集里面仅导出其中的公开成员定义,而不包含具体的实现的方法 有一些 NuGet 包在发布的时候,为了做一些有趣的业务,期望只是包含程序集的公开成员定义,如公开的方法和公开的属性和枚举等, 阅读全文
posted @ 2022-09-22 11:05 X-Cracker 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 1 USE INFORMATION_SCHEMA; 2 SELECT 3 CONCAT( 4 '/// <summary>\r\n/// ', 5 COLUMN_COMMENT, 6 '\r\n/// </summary>\r\n[DataMember]\r\npublic ', 7 CASE 8 阅读全文
posted @ 2022-08-20 22:33 X-Cracker 阅读(205) 评论(2) 推荐(2) 编辑
摘要: 原理 见:https://www.cnblogs.com/mushroom/p/4556801.html 源码 点此下载 布隆过滤器作用 解决缓存穿透问题 过滤重复数据 ... 在C#中的实现方式之一(来自外网) /// <summary> /// 布隆过滤器 /// </summary> /// 阅读全文
posted @ 2021-07-25 19:25 X-Cracker 阅读(333) 评论(1) 推荐(0) 编辑
摘要: 这里仅讨论.NET Framework环境下的情况,在.NET Core中有变化。 真随机数是相对于伪随机数生成类 Random 的。 电脑产生的随机数都是算法生成的,简单的Random类默认使用系统时间刻度作用种子生成随机数,因此如果在并发情况下两个实例产生的随机数有可能相同,也就是说有可能被预测 阅读全文
posted @ 2021-07-21 15:30 X-Cracker 阅读(251) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2021-07-05 00:28 X-Cracker 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 1170818605-ZE4RYW7EWT2UQCJYSZQQQQQQQTQTF3RQKE3WAVY2WUCZ6UKXTAVZ2KUXTDFMBCJENJGQSFDC6ZBC2WJEAZVRWCSEWCNBHJKXGMYX6DGXVCFCH4DXSU2VHYJFECJXNG3TVFKZ37RR548 阅读全文
posted @ 2020-06-10 17:02 X-Cracker 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 我们有各种理由在项目中引入DTO(数据传输对象),因此也有了映射Model与DTO的需求。 要实现映射功能,我们要么自己写代码实现,要么使用现成的库(如AutoMapper)来实现。 但有时候,我们仅仅需要映射少量的对象,并且不想引入库。那么这个时候我们只能自己写代码,于是“反射”信手拈来。 众所周 阅读全文
posted @ 2020-05-25 22:42 X-Cracker 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 其实六七年前WCF盛行的时候也讨论过这个问题。 Close( ) 使 ClientBase<TChannel> 对象从其当前状态转换到关闭状态。 Abort( ) 使 ClientBase<TChannel> 对象立即从其当前状态转换到关闭状态。 文档描述仅仅能看出“立即”两个字的差别,但究竟该怎么 阅读全文
posted @ 2020-05-25 22:10 X-Cracker 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 密码验证规则 要求: 6~16位长度 必须包含大小写字母和数字 表达式: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\S]{6,16} 阅读全文
posted @ 2019-12-15 19:42 X-Cracker 阅读(785) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-08-18 18:23 X-Cracker 阅读(1) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-08-14 16:15 X-Cracker 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 使用抽象方法 当创建一个将广泛分发或重用的类库时(尤其是客户端),使用优先于接口的抽象类。因为这能简化版本控制。这是微软团队开发基础类库时的惯例(COM除外,因为COM是围绕接口设计的)。 使用抽象类为类型家族定义共同的基类。 使用抽象类提供默认的行为。 子类只是类逻辑上属于的层次结构中的基类。 使 阅读全文
posted @ 2019-07-26 17:39 X-Cracker 阅读(778) 评论(1) 推荐(0) 编辑
摘要: 1 /// 2 /// 返回文件体积大小描述 3 /// 4 /// 字节数量 5 /// 6 private string Calc(long bytesCount) 7 { 8 var units = new[] { "B", "KB", "MB", "GB", "TB", "PB", "EB", "Z... 阅读全文
posted @ 2019-05-15 10:20 X-Cracker 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 方法一 将HttpWebRequest对象的Proxy属性设置为null 方法二 配置文件修改 <proxy usesystemdefault="False" /> 阅读全文
posted @ 2019-02-21 16:01 X-Cracker 阅读(1265) 评论(0) 推荐(0) 编辑
摘要: 分享一个VisualSVN v5.2.3的破解文件: >>>> 点此下载 <<<< 下载后,找到VisualSVN的安装目录,例如:C:\Program Files (x86)\VisualSVN\bin 将原始目标文件 VisualSVN.Core.L.dll 备份,然后解压下载的文件,替换即可。 阅读全文
posted @ 2019-02-19 09:35 X-Cracker 阅读(908) 评论(0) 推荐(0) 编辑
摘要: 泛型的可变性:协变性和逆变性 实质上,可变性是以一种类型安全的方式,将一个对象作为另一个对象来使用。 我们已经习惯了普通继承中的可变性:例如,若某方法声明返回类型为Stream,在实现时可以返回一个MemoryStream。泛型可变性的概念与此相同,但要略微复杂一些。可变性应用于泛型接口和泛型委托的 阅读全文
posted @ 2019-02-13 17:35 X-Cracker 阅读(592) 评论(0) 推荐(0) 编辑
摘要: Roslyn引擎自2014年开源至今这么久,一直没怎么了解过,虽然VS2015早就集成了它。 以前老一套的动态编译方法在 .NET Core中似乎不再支持了,很多方法都是未实现的。下面就介绍如何在.NET Core环境中使用Roslyn进行动态编译。话不多说,Talk is cheap, show 阅读全文
posted @ 2019-01-30 17:52 X-Cracker 阅读(2143) 评论(2) 推荐(4) 编辑
摘要: 之前手贱删除了Windows的自动更新服务,命令: 悲剧的是最近中了【永恒之蓝】病毒,很恼人!杀了毒,最后还是得仰仗Windows的补丁来加固系统。于是想通过SC命令恢复Windows的自动更新服务,命令如下: 命令是执行成功了,服务也添加上了,但是死活启动不了,报找不到指定文件~ 坑~ 最后在注册 阅读全文
posted @ 2019-01-30 11:09 X-Cracker 阅读(2243) 评论(1) 推荐(1) 编辑
该文被密码保护。 阅读全文
posted @ 2018-12-10 17:44 X-Cracker 阅读(21) 评论(0) 推荐(0) 编辑
摘要: She left her shoes, she took everything else, her toothbrush, her clothes, and even that stupid little silver vase on the table we kept candy in. 阅读全文
posted @ 2018-09-20 22:30 X-Cracker 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 下面的代码演示了如何在.NET Core中使用“内存配置”: 阅读全文
posted @ 2018-07-10 16:32 X-Cracker 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 自SQLSERVER 2012起新增了 Offset Fetch 语法,因此EFCore默认是以此语法生成相应的分页语句的。 如果我们的目标数据库低于 2012,那么EFCore默认生成的语句在执行的时候肯定会报语法错误。为了兼容旧版本数据库,EFCore提供了 Row_Number( ) 分页方法 阅读全文
posted @ 2018-06-30 16:47 X-Cracker 阅读(2086) 评论(2) 推荐(0) 编辑
摘要: 写法: 假装有个表Shop,其中有一列ShopName,取100000到100050条数据。 ROW_NUMBER 的写法 OFFSET,FETCH 的写法 比较: 之所以取十万条以后的数据,能明显看出执行时间上的差异。虽然前人们已经给出过很多论证,我这里还是贴一下比较结果。 先是ROW_NUMBE 阅读全文
posted @ 2018-06-30 16:38 X-Cracker 阅读(1183) 评论(0) 推荐(0) 编辑
摘要: 前言 本文主要介绍如何通过TFS(Team Foundation Server)命令行强制解锁(UnDo)项目成员对项目文件的占用。 正文 在多人同时开发项目的时候,如果遇到项目组成员独占签出文件后未及时签入然后又请假离开或者离职,亦或者电脑坏掉的情况,这个时候我们就需要强制解锁被占用的文件。 在解 阅读全文
posted @ 2018-06-26 14:54 X-Cracker 阅读(1876) 评论(0) 推荐(0) 编辑
摘要: 本文讲述实现负载均衡的常用算法。 轮询法(Round Robin) 轮询法是负载均衡中最常用的算法,它容易理解也容易实现。轮询法是指负载均衡服务器(load balancer)将客户端请求按顺序轮流分配到后端服务器上,以达到负载均衡的目的。假设现在有6个客户端请求,2台后端服务器。当第一个请求到达负 阅读全文
posted @ 2018-05-07 15:29 X-Cracker 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 概述 文章负载均衡(Load Balancing)学习笔记(一) 讲述了负载均衡的一般性原理,本文继续介绍常见的实现负载均衡的方法。 HTTP重定向 HTTP重定向服务器是一台普通的Web服务器,用户的请求先到达重定向服务器,这台服务器会挑选一台后端服务器的地址(例如使用轮询的方式),并将该地址写入 阅读全文
posted @ 2018-05-07 15:27 X-Cracker 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 概述 在分布式系统中,负载均衡(Load Balancing)是一种将任务分派到多个服务端进程的方法。例如,将一个HTTP请求派发到实际的Web服务器中执行的过程就涉及负载均衡的实现。一个HTTP请求到达Web服务器,这中间涉及多个过程,也存在多种不同负载均衡的方法。本文讲述负载均衡的基本原理与派发 阅读全文
posted @ 2018-05-07 15:11 X-Cracker 阅读(539) 评论(0) 推荐(0) 编辑
摘要: 引入 在业务开发中,我们常把数据持久化到数据库中。如果需要读取这些数据,除了直接从数据库中读取外,为了减轻数据库的访问压力以及提高访问速度,我们更多地引入缓存来对数据进行存取。读取数据的过程一般为: 图1:加入缓存的数据读取过程 对于分布式缓存,不同机器上存储不同对象的数据。为了实现这些缓存机器的负 阅读全文
posted @ 2018-05-07 15:00 X-Cracker 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 最近写了个小工具。主要功能是生成一些数据,然后一键复制,最终粘贴到需要的地方。 本来一切正常的,可是当把工具拿给朋友使用时,却被告知粘贴出来的数据是乱码。当时第一时间想到是区域问题(朋友是台湾人),不过大晚上的已经睡下了也只能第二天再弄。 经验证,确实是区域语言问题导致的。 平时我们大陆使用的基本上 阅读全文
posted @ 2017-09-29 10:49 X-Cracker 阅读(1602) 评论(0) 推荐(0) 编辑
摘要: C#中两个常用的加密方法: 个人Mark,仅作参考。 阅读全文
posted @ 2017-09-15 18:10 X-Cracker 阅读(758) 评论(0) 推荐(0) 编辑
摘要: 在前面的文章中,我解释了IEnumerable和IQuerable,IEnumerable和IList之间的区别。 在本文中,我想使用LINQ分享我对Var和IEnumerable的理解。 IEnumerable是一个只能在集合上向前移动的接口,它不能向后移动和在Item之间移动。 Var用于声明隐 阅读全文
posted @ 2017-09-01 19:04 X-Cracker 阅读(1127) 评论(0) 推荐(0) 编辑
摘要: 使用LINQ中从集合中查询数据时,我们使用IEnumerable和IList进行数据操作。 IList继承自IEnumerable,因此它具有它的所有功能,除此之外,它有自己的功能。 IList比IEnumerable具有以下优势。 在上一篇文章中,我解释了IEnumerable和IQueryabl 阅读全文
posted @ 2017-09-01 18:36 X-Cracker 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 使用LINQ从数据库和集合中查询数据时,我们使用IEnumerable和IQueryable进行数据处理。 IQueryable继承自IEnumerable,因此IQueryable具有IEnumerable的所有功能,除此之外,它还具有自己的功能。 两者都有自己的重要性来查询和操作数据。 让我们看 阅读全文
posted @ 2017-09-01 18:25 X-Cracker 阅读(569) 评论(0) 推荐(0) 编辑
摘要: LINQ to Entity是用于查询和管理数据库的极好的ORM。 它提供了很多东西,所以必须了解它的性能。LINQ在某一些地方有它自己的坏处。 在使用Entity Framework ORM设计和查询数据库时,我们应该记住一些提示和技巧。 避免将所有DB对象放入一个单一实体模型中 避免将所有DB对 阅读全文
posted @ 2017-09-01 17:41 X-Cracker 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 1 /// 2 /// 短链生成 3 /// 4 public class ShortUrlBuilder 5 { 6 private static readonly string[] Chars = 7 { "a" , "b" , "c" , "d" , "e" , "f" , "g" , "h" , ... 阅读全文
posted @ 2017-05-10 11:14 X-Cracker 阅读(1276) 评论(0) 推荐(0) 编辑