原创 .net core signalR 全局異常處理

Hub的異常攔截 environment .net core 5.0 主題 對於hub中的方法執行 實現一個全局的異常處理 目錄食用方法擴展文檔可忽略的源碼食用方法 1.實現自定義攔截類: Microsoft.AspNetCore.Si

原创 .net core signalR 服務端強制中斷用戶連接

.net core signalR 服務端斷開連接 environment .net core 3.1 前言 項目要求弄一個即時通訊 由於.net 已經集成了websocket通訊中間件-signalR,並且運作的效率還可以,爲減少開

原创 .net core api 對於FromBody的參數驗證

前言 在framework的mvc中,經常會使用 Model.State 、 ModelState.IsValid 配合着特性進行參數驗證,通過這種方式可以降低controller的複雜度,使用方便。 常見的特性有: RequiredAtt

原创 ASP.Net Core Web Api 使用 IdentityServer4 最新版 踩坑記錄

輔助工具 日誌追蹤包 : Serilog.AspNetCore 源碼查看工具 : ILSpy 項目環境 ###: ASP.NetCore 3.1 IdentityServer4 4.0.0+ 主題內容 測試登錄方式 : password 錯

原创 面試問題記錄 (一)

asp.net mvc 與 api的區別 Asp.Net MVC用於創建返回視圖和數據的Web應用程序,但Asp.Net Web API用於創建完整的HTTP服務,只需返回數據而不是視圖的簡單方法。 Web API有助於通過.NET F

原创 C# ThreadLocal源碼追蹤

ThreadLocal 字段成員: private Func<T>? _valueFactory; 一個獲取默認值的委託 不同線程共享此成員。 [ThreadStatic] private static LinkedSlotVolatile

原创 C# Monitor.TryEnter 源碼跟蹤

source: Monitor 獲取指定對象的獨佔鎖。 [MethodImpl(MethodImplOptions.InternalCall), SecuritySafeCritical, __DynamicallyInvokable]

原创 C# Monitor.Wait() 源碼追蹤 (轉載)

source: 釋放對象上的鎖並阻止當前線程,直到它重新獲取該鎖。 如果已用指定的超時時間間隔,則線程進入就緒隊列。 可以在等待之前退出同步上下文的同步域,隨後重新獲取該域。 [SecuritySafeCritical] publi

原创 redis併發鎖

1.應對併發場景 避免操作數據不一致 將對redis加鎖 2.考慮到異常狀況無法釋放鎖,導致死鎖 將代碼塊進行try-catch處理 3.考慮try時宕機依然導致死鎖 對鎖添加時效性,添加過期時間 4.由於業務代碼塊執行時長不

原创 lock學習篇(上)

why? 當我們使用線程的時候,效率最高的方式當然是異步,即各個線程同時運行,其間不相互依賴和等待。 但當不同的線程都需要訪問某個資源的時候,就需要同步機制了,也就是說當對同一個資源進行讀寫的時候, 我們要使該資源在同一時刻只能被一個線

原创 C# redis 的簡單應用

region 準備參數 var connStr = "localhost:6379,password="; var db = 2; SiteRedisHelper redisHelper

原创 C# Redis輔助類封裝與簡單聊天室的實現思路說明

雖然redis api的功能比較齊全,但個人覺得爲了更好的方便學習和使用,還是很有必有做一個類似DBHelper的幫助類 輔助類主要功能(代碼會在最後放出來) 1. 事件監聽: 重新配置廣播時(主從同步更改) 發生內部錯誤時

原创 .net core 2.0 mvc 獲取配置信息

mvc_core_config 在.net core mvc中 配置文件格式更改爲json且移除了ConfigurationManager.AppSettings[xmlkey]的方法, 那麼,如何來獲取配置信息呢? 第一步 將jso

原创 反射小知識 【方法篇】

reflect_method 場景: 在方法定義時,我們有可能使用到 in/out/ref 這些關鍵字 來定義參數 in表示只讀引用 -- 此特性出現在C# 7.2 由於此處使用的爲C# 7.0 不進行測試說明 那麼我們如何在反射中