原创 AOP在特來電的應用探索

摘要 ​ 本文將探討AOP(面向切面編程)在特來電的應用,重點研究AOP在日誌記錄、參數校驗、權限校驗、異常處理等領域的實際應用。我們將首先對比目前實現AOP的兩種常見途徑:靜態編織方式和運行時處理方式,並分析它們的優缺點。然後,我們將對比

原创 HttpClient使用問題淺析

 1.背景   最近團隊開發的數據庫組件需要通過HTTP請求方式從配置中心獲取連接字符串,該組件採用.NET 6進行開發。考慮到併發的情況,因此對獲取連接字符串的方法進行了加鎖,並進行了雙重檢測(double-checking)。 由於組件

原创 警告︰此程序集被標記爲“引用程序集”,這意味着它只包含元數據,沒有可執行代碼。 ProduceOnlyReferenceAssembly

本文告訴大家如何使用 msbuild 的 ProduceOnlyReferenceAssembly 功能,將某個程序集裏面僅導出其中的公開成員定義,而不包含具體的實現的方法 有一些 NuGet 包在發佈的時候,爲了做一些有趣的業務,期望只是

原创 根據MySQL表生成C#實體模型

1 USE INFORMATION_SCHEMA; 2 SELECT 3 CONCAT( 4 '/// <summary>\r\n/// ', 5 COLUMN_COMMENT, 6

原创 C#布隆過濾器的實現

原理 見:https://www.cnblogs.com/mushroom/p/4556801.html 源碼 點此下載 布隆過濾器作用 解決緩存穿透問題 過濾重複數據 ... 在C#中的實現方式之一(來自外網) /// <s

原创 在.NET Framework環境下生成真隨機數

這裏僅討論.NET Framework環境下的情況,在.NET Core中有變化。 真隨機數是相對於僞隨機數生成類 Random 的。 電腦產生的隨機數都是算法生成的,簡單的Random類默認使用系統時間刻度作用種子生成隨機數,因此如果在併

原创 多線程組件序列號

1170818605-ZE4RYW7EWT2UQCJYSZQQQQQQQTQTF3RQKE3WAVY2WUCZ6UKXTAVZ2KUXTDFMBCJENJGQSFDC6ZBC2WJEAZVRWCSEWCNBHJKXGMYX6DGXVCFCH

原创 SQL SERVER 2012/ 2014 分頁,用 OFFSET,FETCH NEXT改寫ROW_NUMBER的用法(轉)

寫法: 假裝有個表Shop,其中有一列ShopName,取100000到100050條數據。 ROW_NUMBER 的寫法 SELECT * FROM (SELECT ShopName , ROW_NUMBER() OVER(ORDER

原创 負載均衡(Load Balancing)學習筆記(三)

本文講述實現負載均衡的常用算法。 輪詢法(Round Robin) 輪詢法是負載均衡中最常用的算法,它容易理解也容易實現。輪詢法是指負載均衡服務器(load balancer)將客戶端請求按順序輪流分配到後端服務器上,以達到負載均衡的目的。

原创 HMAC-SHA256 & MD5 In C#

C#中兩個常用的加密方法: 個人Mark,僅作參考。   public static class Extends { /// <summary> /// HMAC SHA256

原创 關於WCF客戶端對象的釋放:Close( ) & Abort( )

其實六七年前WCF盛行的時候也討論過這個問題。   Close( ) 使 ClientBase<TChannel> 對象從其當前狀態轉換到關閉狀態。 Abort( ) 使 ClientBase<TChannel> 對象立即從其當前狀態轉換到

原创 一個高性能的簡易Model映射類

我們有各種理由在項目中引入DTO(數據傳輸對象),因此也有了映射Model與DTO的需求。 要實現映射功能,我們要麼自己寫代碼實現,要麼使用現成的庫(如AutoMapper)來實現。 但有時候,我們僅僅需要映射少量的對象,並且不想引入庫。那

原创 密碼匹配正則表達式

密碼驗證規則  要求: 6~16位長度 必須包含大小寫字母和數字 表達式: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\S]{6,16}

原创 關於抽象類與接口的選擇

  如果準備爲不相關的類創建一些提供共有功能的東西,請使用接口。 抽象類允許你爲子類提供默認功能。 如果要爲層次結構中密切相關的對象創建內容,請使用抽象類。 如果基類經常更改並且使用了接口替代了抽象類,那麼我們將遇到問題。一旦接口更改,所

原创 代碼片段-計算文件字節大小,以合適的單位顯示

1 /// <summary> 2 /// 返回文件體積大小描述 3 /// </summary> 4 /// <param name="bytesCount">字節數量</param>