[小菜一碟] 如何在 Web Service 代理類別發送 Http Request 前加入自訂 Http Header?

之前的一篇文章中,說明了我們如何用 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.

它的意思是,相同主索引鍵的實體無法被追蹤,因為已經有另一個實體正在被追蹤,我們來看看怎麼回事。

...繼續閱讀 »

[小菜一碟] 使用 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# 我們有更優雅的做法。

...繼續閱讀 »

[桌邊服務] 我翻譯了一本書「Pragmatic TDD:以 DDD 寫出鬆散耦合、文件化和高品質的程式碼」

去年(2022)年底自告奮勇向博碩文化報名了翻譯勇者,在此之前我已經知道翻譯是件吃力不討好的工作,但我還是跳坑了,僅僅是覺得我應該能為台灣正體中文的翻譯書籍做出那麼一點點貢獻,於是選了一本在技術領域上我還不算陌生的 Pragmatic Test-Driven Development in C# and .NET

...繼續閱讀 »

[小菜一碟] 手動為 Windows Form 應用程式加入組態設定轉換(Configuration Transform)

有開發過 ASP.NET 網頁應用程式的朋友,應該對 Web.ConfigWeb.Debug.ConfigWeb.Release.Config 這三個設定檔不陌生,在建置專案的時候,建置程序會依據組態(Debug|Release)進行設定轉換,產出專屬於該組態的 Web.Config,如果換作是 Windows Form 應用程式的 App.Config 的話,該怎麼做?

...繼續閱讀 »

[料理佳餚] 在 ASP.NET Core 整合 Twitter 做為網站的第三方登入

第三方登入系列文章的第六篇,「在 ASP.NET Core 整合 Twitter 做第三方登入」,應該也是最後一篇了,最近這一段時間討論度最高的社群平台應該就是 Twitter 了,不知道一龍這樣搞下去,Twitter 的未來會怎麼樣?不過在台灣來講,使用 Twitter 的人比例是比較小的,若是我們的應用程式的主要服務對象是在美國或是日本,Twitter 的第三方登入可能就有其必要性,整個整合的過程,就記錄在這篇文章當中。

...繼續閱讀 »

[料理佳餚] 在 ASP.NET Core 整合 GitHub 做為網站的第三方登入

第三方登入系列文章的第五篇「在 ASP.NET Core 整合 GitHub 做第三方登入」,GitHub 是全世界最大的程式原始碼管理平台,每個開發者應該都要有一個 GitHub 帳號,如果我們的網站的服務對象是開發者,應該要有一個 GitHub 第三方登入給使用者使用,整個整合的過程,就記錄在這篇文章當中。

...繼續閱讀 »

[料理佳餚] 在 ASP.NET Core 整合 Microsoft 做為網站的第三方登入

第三方登入系列文章的第四篇「在 ASP.NET Core 整合 Microsoft 做第三方登入」,Microsoft 是老牌的大廠,旗下的 Windows、Office、Azure、...等產品,都已經融入了我們的生活當中,Microsoft 也有提供 OAuth 2.0 授權平台,整個整合的過程,就記錄在這篇文章當中。

...繼續閱讀 »