在 .NET Core 中,中間件(Middleware) 是處理 HTTP 請求和響應的核心組件。它們被組織成一個請求處理管道,每個中間件都可以在請求到達最終處理程序之前或之后執行操作。中間件可以用于實現各種功能,如身份驗證、路由、日志記錄、異常處理、靜態文件服務等。 什么是中間件? 中間件是 H ...
簡單、易上手、高效、實用、靈活的 ORM 框架,代碼友好,開源、易擴展; nuget: Install-Package ASmile.ORM 目前支持,SQLIte 、SQLServer、MySql、Oracle 數據庫; 不做鋪墊,直接上示例, 首先,創建數據庫對象: DBContext db = ...
跨進程設置父子窗口除了owner方案 C# 跨進程 設置窗口owner - 唐宋元明清2188 - 博客園,還有Win32-SetParent SetParent 函數 (winuser.h) - Win32 apps | Microsoft Learn SetParent可以實現將子窗口嵌入另一個 ...
在 .NET Core 中,依賴注入(Dependency Injection,DI)是一種實現控制反轉(Inversion of Control,IoC)的技術,它通過將依賴對象注入到需要它們的對象中,來實現對象之間的解耦。依賴注入的生命周期決定了對象在應用程序中的創建和管理方式。常見的生命周期有 ...
AsyncLocal<T>是一個在.NET中用來在同步任務和異步任務中保持全局變量的工具類。 它允許你在不同線程的同一個對象中保留一個特定值,這樣你可以在不同的函數和任務中訪問這個值。 這是在實現異步任務中維持一致性和優雅性的一種重要手段。 用法 創建一個AsyncLocal實例: 你可以使用Asy ...
大家好,上一篇我們分析了 .NET 依賴注入的默認行為,其實呢還沒完全講完。今天我先給大家出一道題: public interface IDbContext { } public class SqlServerDbContext : IDbContext { } public class LongT ...
一:背景 1. 講故事 最近聊了不少和異步相關的話題,有點疲倦了,今天再寫最后一篇作為近期這類話題的一個封筆吧,下篇繼續寫我熟悉的 生產故障 系列,突然親切感油然而生,哈哈,免費給別人看程序故障,是一種積陰德陽善的事情,欲知前世因,今生受者是。欲知來世果,今生做者是。 在任務延續方面,我個人的總結就 ...
在 Rx 中,Subscribe() 方法返回一個 IDisposable 接口對象,用于手動取消訂閱和釋放資源。另外,System.Reactive 還提供了不返回 IDisposable 的 Subscribe 重載,這些重載方法通過 CancellationToken 管理訂閱的生命周期。在本... ...
這篇文章可以通過一些結構性的調整和文字優化,使得內容更具吸引力和流暢感。以下是改進后的版本: Rubyer-WPF:打造優雅、精致的 WPF 用戶界面 在桌面應用開發領域,WPF(Windows Presentation Foundation)憑借其強大的 UI 設計能力和豐富的功能,始終是開發者們 ...
本文介紹如何將窗口置于最頂層,以及解決在頂層顯示時對鎖屏登錄界面的影響等問題。用于實現類似Launcher、系統工具等應用需要窗口層級比Windows開始菜單以及置頂任務欄還要高的場景 一般情況下的窗口置頂,可以設置WPF窗口屬性Topmost=true 也可以使用WIN32-SetWindowPo ...
通常情況下,使用相對寬度(如 * 星號單位)和適當的 HorizontalAlignment 是最簡單有效的方法,可以確保子控件隨著父控件的大小變化而自動調整。如果需要更精確的控制,可以考慮使用 RelativeSource 綁定或其他高級技術。確保父容器也支持子控件的動態尺寸調整非常重要。 ...
1. 什么是 Tesseract Tesseract 是一個強大的字符識別 (OCR) 工具。它最初由 HP 發布,現在由 Google 和學術社區共同維護和開發。 Tesseract 支持多種語言和格式,能夠高效地識別圖片中的文字。 2. 如何安裝 Tesseract 要在 .NET 項目中使用 ...
在 Rx 中,數據流的生產和消費是通過 觀察者模式(Observer Pattern) 實現的。這種模式定義了兩種角色:IObservable和IObserver ...
在WinForm開發中,如果有多個頁面進行展示,通常采用菜單欄+容器布局方式(點擊菜單欄,打開新的頁面,并在容器中顯示)。今天以一個簡單的小例子,簡述如何通過菜單欄和MDI容器實現頁面的布局,僅供學習分享使用,如有不足之處,還請指正。 ...
介紹 Easy.Admin 是一個高效且靈活的后臺管理系統,采用了現代化的技術棧,旨在幫助開發者快速搭建高質量的后臺管理平臺。這個系統不僅支持 .NET 8 后端開發,還結合了 Vue3 和 TypeScript 前端技術,提供了一個功能強大且易于擴展的管理框架。同時,它還支持多種數據庫,滿足 ...
一:背景 1. 講故事 最近時間相對比較寬裕,多寫點文章來充實社區吧,這篇文章主要還是來自于最近遇到的幾例線程饑餓(Task.Result)引發的一系列的反思和總結,我覺得.NET8容易引發饑餓的原因,更多的在于異步回調之后底層會反復的將結果丟到線程池所致,因為數據進線程池容易,再用線程到池中去撈就 ...
C#筆記——釘釘機器人推送帆軟報表圖片(一) 1、前言 ? 2024年最后一個月,家里多了個小公主,在家休息了一段時間。2025年,休完假上班第一天,領導就說:哎,我看總部那邊做了個每日產出的報表推送到釘釘群,來看計劃達成率。我們基地這邊能不能做啊。我心里默默一想,然后大聲一喊能做(內心os:上家公 ...
Html的checkbox使用很廣的,它的狀態,勾選與非選。 初始狀態,默認為非選。你可以設置它是勾選, 直在checkbox 標簽中,添加checked屬性。另外,在javascript可以這樣, getById('Checkbox_IsPublished').checked = true; 或者 ...
一:背景 1. 講故事 前段時間訓練營里的一位朋友提了一個問題,我用ReadAsync做文件異步讀取時,我知道在Win32層面會傳 lpOverlapped 到內核層,那在內核層回頭時,它是如何通過這個 lpOverlapped 尋找到 ReadAsync 這個異步的Task的呢? 這是一個好問題, ...
前言 一個WIFI上位機,接收底層MPU6050數據,途中轉藍牙從機透傳,到藍牙主機直連WIFI,PC端UDP通信,實現三軸加速度數據傳送和計步功能。 項目介紹 本項目基于.NET平臺,使用WPF開發了一個應用程序,用于實現MPU6050傳感器數據從藍牙模塊傳輸到主機,并通過WiFi以UDP協議接收 ...