今天以前,我一直以為「在 C# 程式裡面只要是 String 型態,其內容都會在 String Pool 有一份,而且相同的 String 實體物件在記憶體中只會有一份。」,這個觀念在今天得到了修正:「只有在編譯時期的 Literal String,預設才會放進 String Pool,執行時期動態組成的 String 物件則不會。」,再次命中了「程式是照我們寫的跑,不是照我們想的跑。」
[料理佳餚] C# 在 Redis 發生 Failover 時自動跟著執行 HA 切換
天有不測風雲,人有旦夕禍福;服務在走,HA 要有,先前有介紹過使用 Redis-Sentinel 打造 Redis 的 HA,當時只完成了伺服器端的設定,這次要介紹如何在應用程式這一端也完成自動 failover,以維持服務的 HA。
[小菜一碟] 取得往上第 n 個階層的目錄路徑
有時候我們會有這樣的需求,我們需要取得相對於當前所在目錄的祖父兄弟目錄(暫且稱呼為叔公目錄)的絕對路徑,如果我們已經知道叔公目錄的絕對路徑永遠不變,當然就直接 Hard Code 取用就好,但是這種狀況是少之又少,大多數情況是整個家族目錄會因需要而搬家,在已知叔公目錄名稱的條件下,要得知叔公目錄的絕對路徑,我們可以這樣做,找到曾祖父目錄之後,把叔公目錄名稱合併在後面就可以了,而我們要怎麼用 C# 找到曾祖父目錄呢?
[食譜好菜] 用 SqlBulkCopy 可以快速批次 Insert 大量資料,那批次 Update 大量資料呢?
- 19071
- 0
- SQL Server
- 2017-02-07
先前有介紹過用 SqlBulkCopy 快速批次 Insert 大量資料,心裡想說既然快速批次 Insert 大量資料有 SqlBulkCopy,那我要快速批次 Update 大量資料有沒有類似於 SqlBulkCopy 的東西可以用?很可惜,可能是我孤陋寡聞,遍尋不著可以像 SqlBulkCopy 這麼相對容易操作的工具,不過我倒是有找到替代方案,速度上也可以接受,我把整個實作的過程做個記錄,以利往後參考。
[食譜好菜] 用 SqlBulkCopy 批次 Insert 大量資料讓你想不到的快
SqlBulkCopy 它不是個新玩意兒,但是我最近才認識它,「你不知道你還有哪些不知道」是一件很恐怖的事情,原來 SqlBulkCopy 在 .NET 2.0 就有了,它的出現讓 Insert 大量資料變得更方便了,我只能感嘆相見恨晚。
[食譜好菜] 用 SonarQube 分析 C# 程式碼品質
之前將 SonarQube 裝在 CentOS 上,裝完後發現它無法跟我的幻想一樣地分析 C# Code,要分析 C# Code 還是得要在 Windows 的環境才行,因此我把 SonarQube 移到 Windows Server 上,資料庫就延用 MySQL,執行分析的步驟跟在 CentOS 環境上有一點不一樣,我們就來看看 SonarQube 在 Windows 環境怎麼分析 C# Code。
[食譜好菜] DateTime 具有文化特性的格式化及時區的轉換
為什麼會想寫這篇呢?因為我看到了這樣的程式碼:
以及
我不曉得,原來有很多的 .NET 程式設計師不知道 .NET Framework 已經提供了很好的日期時間處理方式。
[廚餘回收] 扒網頁扒到「伺服器認可通訊協定違規. Section=...」追追追
之前扒網頁扒到「伺服器認可通訊協定違規. Section=...」的問題,決定追根究柢一下,這個訊息不是只有在用 RestSharp 接收 Response 時會這樣,用 Fiddler 做側錄的時候也會跳出警告訊息來。
[廚餘回收] 扒網頁扒到「伺服器認可通訊協定違規. Section=...」(伺服器認可的耶)
[料理佳餚] AutoMapper 中不容忽視的 Ignore() Mapping 的順序
- 4219
- 0
- AutoMapper
在有繼承關係的類別中使用 AutoMapper 為整個繼承鏈的類別做 OOM 有很多眉角需要注意,包含使用 Include 語法宣告所有派生類別的對應,以及為所有派生類別明確地建立對應地圖,就在前幾天我踩到了 Ignore() 的地雷...