[創意料理] 突發奇想的「延遲依賴注入(Lazy Dependency Injection)」

最常見的依賴注入(Dependency Injection)方式,就是從建構式上面,將依賴的服務一一注入,但是實務上多多少少會有一部分的 Instances,在服務被釋放之前都沒有被用到,雖然一般來說,產生 Instance 的成本不大,不過我還是想試一下,能不能將依賴注入這件事移到執行的目標方法裡面,在方法裡面有用到的服務才注入,所以就有了「延遲依賴注入(Lazy Dependency Injection)」這個題目。

...繼續閱讀 »

[小菜一碟] 如何讀取自訂 ConfigurationElement 節點內的設定值?

在 .NET Framework 中,無論是 App.ConfigWeb.Config,均有保留 <configSections> 讓我們可以自訂設定區塊(ConfigurationSection),由於曾經看過有一些 Library 把設定值放在節點之中,像這樣:

等到要自己弄的時候才發現,似乎沒有那麼簡單,網路上搜尋到的有關於自訂 ConfigurationSection 的文章,大都沒有提到這一塊。

...繼續閱讀 »

[料理佳餚] C# 一個 Open Source 的 Compile-time AOP 框架 - AspectInjector

  • 1152
  • 0
  • C#
  • 2021-01-25

看到 Bill 叔在 twMVC#39 講的 Compile-time weaving 的 AOP 框架 - PostSharp,勾起了我的 AOP 魂,隨手 Google 了一下,讓我找到了一個 Open Source 的框架 - AspectInjector(看名字我還以為是某個 Dependency Injection 的套件),看它在 GitHub 的介紹裡面下了 postsharp 的標籤,似乎有向 PostSharp 看齊的目標。

...繼續閱讀 »

[廚餘回收] 調整 Nginx 的最大連線數遇到 setrlimit(RLIMIT_NOFILE, 65535) failed (1: Operation not permitted) 錯誤訊息

Nginx 預設每個 Worker Process 的最大連線數是 1024,這個對我們網站是不夠用的,那不夠用就會收到 socket() failed (24: Too many open files) 的錯誤訊息,於是就動手調整 Nginx 的參數,就在調整其中一個參數 worker_rlimit_nofile 的過程中,出現了下面的錯誤訊息:

setrlimit(RLIMIT_NOFILE, 65535) failed (1: Operation not permitted)

...繼續閱讀 »

[料理佳餚] 概念性地了解一下 Akka.NET 和 Actor Model 以及響應式系統(Reactive System)

隨著業務的增長,應用程式要處理的需求愈來愈多,也愈來愈細,需求間的依賴關係也會變得複雜,當使用者也隨之增加的時候,應用程式也需要進行拆分及擴展,因此我們需要一種設計方法,來引導我們針對高併發、分布式、需求多又細又複雜的應用程式來進行設計。

...繼續閱讀 »

[創意料理] 在 ASP.NET MVC 切莫無腦地使用 Html.Action、Html.RenderAction

Html.ActionHtml.RenderActionHtml.PartialHtml.RenderPartial 這四種方法都可以協助我們在 View 裡面渲染部分 HTML 內容,網路上針對這四種方式的差異說明大都著重在使用方式,但這次我們往下挖,看看這四種方式做了些什麼事?

...繼續閱讀 »

[小菜一碟] AngularJS 中 Directive 如何傳遞參數給 Isolate Scope 觸發函式(&)?

用 AngularJS 開發程式很少不用額外撰寫 Directive,如果我們在 Directive 裡面使用 Isolate Scope 並且從 Controller 指定了一個 function 為觸發函式(&),好死不死這個 function 是需要丟參數給它的,按照一般正常的丟法是不會 work 的,想要丟參數給觸發函式需要一點迂迴的做法。

...繼續閱讀 »

[料理佳餚] Xamarin.Forms 透過 Firebase Cloud Messaging(FCM)的 click_action 使輕按推播通知後執行指定的程式碼

Firebase Clound Messaging(FCM)的 Notification Payload 裡面有一個 click_action,顧名思義就是當推播訊息被使用者點擊之後,App 跟隨著要做什麼樣的反應動作,最常見的就是 App 依據 click_action 跳至與通知相關的頁面,我們就來看看如何透過 click_action 來控制顯示不同頁面。

...繼續閱讀 »