Ron 2.0

Simple Is Not Easy


  • Home

  • Archives

  • Tags

  • Sitemap

  • Search

在 Model Binding 後讀取 Request.Body 的內容

Posted on 2022-06-26 | In C# , .NET

一般來說在 WebAPI 的專案中, 我們會偏好使用 Model Binding 的機制來綁定請求內容, 但是之前在一個特殊需求上卻遇到在 Model Binding 後仍然要讀取 Request.Body (型別是 Stream) 的內容.

而問題在於, Form Post 的情境中, 在Model Binding 後 (在 Action 中) 讀取Request.Body 時會得到空的內容, 但是資料長度又是正確的 (而神奇的是 JSON 和 XML 情境是沒問題的).

這邊 Form Post, JSON 和 XML 情境是依 Content-Type 這個 Header 來分辨的.

Read more »

關於物件和集合初始設定式

Posted on 2022-06-06 | In C# , Language Spec

寫 C# 也好幾年了, 對於物件和集合初始設定式的使用也很習慣, 也知道那是語法糖, 但是前陣子看到自訂類別要套用物件和集合初始設定式時, 才發現其實沒有想像中的熟, 所以想稍微再整理一下一些細節.

Read more »

XML 序列化時有條件的忽略欄位

Posted on 2022-05-30 | In C# , .NET

之前遇到需要在 XML 序列化的過程中忽略值為空值或預設值的欄位, 查了一下才發現不太好找而且做法沒有很直覺.

Read more »

依字位 (grapheme) 處理字串

Posted on 2022-05-28 | In C# , .NET

以前在處理字串的時候, 不管是反轉或是取字元都沒考慮到有些語言的一個字母可能是由多個字組成的, 直到遇到問題.

舉個越南文的例子, ơ 是由 o 和 ̛ (%cc%9b) 組成的, 所以處理的時候就容易有預料外的結果, 以字串反轉來說, ơa 反轉後變成 a̛o

Read more »

Flatten JSON

Posted on 2021-11-14 | In C# , .NET

幾年前因為需要將”不固定格式且不可預期”的 JSON 字串轉換成 Dictionary<strin, string> 而做了擴充方法, 但後來發現實作得太複雜了.所以想記錄一下比較簡單的做法.

Read more »

.NET Core 中單一介面多實作搭配依賴注入的幾種方式

Posted on 2021-10-31 | In C# , .NET Core

在 .NET Core 中注入多個實作有幾種方式,各自有不同的優缺點與試用情境,相關範例程式碼會放在 這個 GitHub 專案 上。

Read more »

基於 ASP.NET Core WebAPI 讀取 Request / Response Body

Posted on 2021-06-26 | In C# , .NET Core

之前在 WebAPI 安全的取得 Request Body 這篇文章有提到讀取 Request Body 的方式, Response 的部分其實大同小異, 且在 ASP.NET Core 中也是相同邏輯(即使實作可能不同), 但有個不同的地方是 ASP.NET Core 中的 request body 預設是讀完無法回捲的(也就是讀完後指標會在 stream 最後面, 無法重複讀取), 且 response body 是唯寫 (WriteOnly) 的, 所以無法讀取, 就需要一點小技巧.

Read more »

使用 Friend Assembly

Posted on 2021-06-06 | In C# , .NET

如果組件 A 是組件 B 的 Friend Assembly, 則在組件 A 中能存取別的組件內的 internal 類別或成員, 更多細節在官方介紹.

Read more »

傳遞依賴 (transitive dependency)

Posted on 2021-05-23 | In C# , .NET Core

為了降低多個專案間的複雜度, 我們通常會謹慎的控制專案之間的依賴, 但在最近新開案的 .NET Core 一系列的新專案中發現傳遞依賴會讓專案之間產生預期外的依賴.

Read more »

Encoding.UTF8 vs new UTF8Encoding() 和 xml 序列化的可能問題

Posted on 2021-05-10 | In C# , .NET Core

Encoding.UTF8 和 new UTF8Encoding() 所建立的物件內容是極其相似的, 甚至有些問答網站是說完全一樣, 但實際上有個小小不同的地方, 雖然多數時候不會造成影響, 但前陣子在寫 xml 序列化的測試的時候就出現結果不同的情境, 所以稍微紀錄一下.

Read more »
1…456…10
Ron Sun

Ron Sun

97 posts
18 categories
3 tags
GitHub Linkedin
Resources
  • .Net Source Code
  • .Net Core Source Code
  • NotFalse 技術客
  • 放零碎筆記的 Gist
© 2017 - 2025 Ron Sun
Powered by Hexo
Theme - NexT.Pisces