原创 C# Nut Shell 第十二章 銷燬對象與垃圾回收

IDisposable接口、Dispose方法和Close方法 using語句提供了調用實現了IDisposable接口對象的Dispose方法的快捷方法。相當於實現了try/finally語句 標準銷燬語義 1.對象一旦被銷燬就無法恢復

原创 C# Nut Shell 第十一章 其他XML技術

"<custom id='123' status='archived' >" + "<firstname>123</firstname>" + "<lastname>bin

原创 OIDC協議

1.ID Token是jwt,包含一組關於身份認證會話的聲明(claim) 2.access token在oidc中也能使用,伴隨着id token一起被髮送到客戶端,但是這不是必要的,因爲id token已經包含了用戶信息,access

原创 Asp.Net Core 高級-編寫中間件

中間件類 app.Use,app.Map也算中間件,這是用委託來實現的中間件。可以將委託寫到另外的類中。 1.創建中間件類 public class RequestCultureMiddleware {

原创 TCP/IP詳解:卷1

第二章 鏈路層 1.以太網:標準爲RFC894,是目前主流的局域網技術 2.IEEE 802:標準爲RFC1042 3.兩種合適採用的都是48位尋址方式(MAC地址) 4.SLIP:串行線路IP 5.CSLIP:壓縮的SLIP 6.PPP

原创 Asp.Net Core 高級-URL重寫

URL重定向和重寫 1.URL重定向涉及客戶端操作,指示客戶端訪問與客戶端最初請求不同的資源,返回客戶端的重定向地址會出現在瀏覽器中。 301和302都是重定向。 301表示永久,則客戶端會緩存這個重定向地址 302表示臨時,客戶端不會緩

原创 Asp.Net Core 3.0無法使用JsonPatch

原因 Asp.Net Core中的JsonPatchDocument使用NewtonsoftJson這個庫來解析。 Asp.Net Core2.2中默認Json的處理庫就是NewtonsoftJson。 而到了Asp.Net Core 3

原创 C# NutShell 第二十二章高級線程處理

排它鎖 排它鎖三種:lock,Mutex,SpinLock 排它鎖鎖住的是代碼塊,而不是代碼塊裏面的變量。當別的線程也想要使用這一部分代碼時,就需要判斷這個鎖可不可以用。 lock語句 class ThreadSafe

原创 Asp.Net Core JsonPatch使用

實體類 public class School { public string Location { get; set; } public string Country { get; se

原创 Asp.Net Core 高級-模型驗證

模型狀態 1.模型狀態表示2個子系統的錯誤:模型綁定和模型驗證 模型綁定錯誤:數據類型不匹配 模型驗證:不符合業務規則 2.模型驗證使用ModelState.IsValid 3.使用[ApiController]則無需ModelState

原创 nodejs搭建服務器,返回json文件

使用nodejs搭建一個最簡單的服務器,用來返回自定義的json數據。 1.自行安裝nodejs,並且設置環境 2.建立服務程序server.js和數據文件data.json server.js var http = require('

原创 C# NutShell 第十七章 序列化

序列化的概念 1.序列化是將內存中的對象或者對象圖(一組相互引用的對象)拉平爲一個可以保存或傳輸的字節流,或者XML節點。 2.反序列化與序列化相反 3.序列化一般用於網絡或程序邊界傳輸,文件或數據庫保存 4.克隆對象 序列化引擎 1.數

原创 Asp.Net Core DI IoC

IoC:控制反轉。在一個有層級的結構中,上層依賴下層,下層的改變會影響上層。控制反轉就是將自上而下的依賴鏈部分反轉。由A->B,轉變爲A->Interface<-B。從中間抽象出一層來,上下2層都依賴他。只要中間這一層不變,則2端可以自由

原创 C# Nut Shell 第十九章 反射和元數據

反射和激活類型 獲取類型 1.GetType()和typeof都可以獲取類型,GetType是在運行時,而typeof是在編譯時 2.可以在獲取一個基礎類型後再構造其他類型 Type simpleArray =

原创 C# Nut Shell 第十三章 診斷

條件編譯 1.#if:若特定的符號沒有定義,則編譯器將忽略該部分代碼 2.特定代碼可以使用#define定義,類似於C++的宏,但是該條指令必須位於文件的最前面,比using還要前面。 3.#if中也可以使用|| && !等操作符 4.#