在之前的一篇文章中,說明了我們如何用 WSDL 檔案產生代理類別,現在目標的 Web Service 有一個需求是要加入一個 Http Header,網路上可能會找到覆寫 GetWebRequest()
的解法,但我們會發現,用 dotnet-svcutil 所產生的代理類別無法覆寫 GetWebRequest(),該怎麼辦?
[料理佳餚] 使用 dotnet-svcutil 手動從 WSDL 檔案產生代理類別並整合進 .NET Core 專案
以往我們要呼叫 ASMX Web Service 的服務,大多透過 Visual Studio 的「加入 -> 服務參考
」的程序,自動產生 Reference.cs
程式碼檔案,裡面就有我們要用的服務代理。但現在因為開發環境無法連線 Web Service,所以無法使用這個方式,我們手上有的是一個 *.wsdl
檔案,要改用手動的方式建立服務代理。
[廚餘回收] Entity Framework Core 錯誤:「...cannot be tracked because another instance...」的原因與解法
從應用程式日誌看到下面這個 Entity Framework Core(以下簡稱 EF Core)發出的例外錯誤:
The instance of entity type 'MyTable' cannot be tracked because another instance with the same key value for {'Key'} is already being tracked. When attaching existing entities, ensure that only one entity instance with a given key value is attached.
它的意思是,相同主索引鍵的實體無法被追蹤,因為已經有另一個實體正在被追蹤,我們來看看怎麼回事。
[食譜好菜] 微軟欽點的郵件發送套件 - MailKit
微軟有一個 System.Net.Mail.SmtpClient 類別,被建議說不要在新開發的應用程式中使用,並且給了非常明確的指示「請改用 MailKit
」,MailKit 是建構在 MimeKit 上面的一個跨平台郵件發送套件,既然微軟爸爸都這麼說了,我們直接上手。
[小菜一碟] 使用 C# 將民國日期的字串轉換成西元日期
四年一次會出現的不是只有總統大選,還有 2 月 29 日的問題,程式如果寫得不夠久大概也不會遇到,像今年就有可能會收到像是「113/02/29
」、「113年2月29日
」這樣的日期字串,在 C# 中如果直接先轉成西元日期的 113/02/29,再加上 1911 年,像這樣:
DateTime.ParseExact("113/02/29", "yyy/MM/dd", null).AddYears(1911);
那我們的程式應該已經爆了,因為西元 113 年沒有 2 月 29 日,關於閏年的問題,在 C# 我們有更優雅的做法。
[小菜一碟] 手動為 Windows Form 應用程式加入組態設定轉換(Configuration Transform)
有開發過 ASP.NET 網頁應用程式的朋友,應該對 Web.Config
、Web.Debug.Config
、Web.Release.Config
這三個設定檔不陌生,在建置專案的時候,建置程序會依據組態(Debug|Release)進行設定轉換,產出專屬於該組態的 Web.Config,如果換作是 Windows Form 應用程式的 App.Config 的話,該怎麼做?
[食譜好菜] 用 C# 來實作 B+Tree(B Plus Tree)資料結構
[食譜好菜] 用 C# 來實作 B-Tree 資料結構
[小菜一碟] 發現一個 C# ValueTuple 方便的應用 - Swap
從 C# 7.0 開始多了一個 - ValueTuple 的實值型別可以用,有用過的朋友應該都能感覺出其方便之處,尤其在撰寫多值回傳方法的時候,除了可以減少宣告過渡型類別的數量之外,還能避免在方法簽章中宣告多個 out 參數,沒想到它還可以簡化 Swap 程式碼。
[小菜一碟] .NET Framework 能不能用新版 System.Text.Json 的 JsonNode、JsonObject、JsonArray、JsonValue?
以往在 Json.NET 有 JToken
、JObject
、JArray
、JValue
這些類別,可以讓我們在反序列化 JSON 的時候,不必一定要為其結構新增對應的型別,2021 年 11 月 .NET 6 釋出之後,內建的 System.Text.Json 也隨之升級,增加了 JsonNode
、JsonObject
、JsonArray
、JsonValue
,與 Json.NET 的那四個類別相對應,那我想要在 .NET Framework 使用 System.Text.Json 行不行?