Jax 的工作紀錄
除了在整理學習上的經驗,同時也能幫助其他需要的人
2021-10-16
C# MVC 的 UserException 攔截處理
›
為了將錯誤訊息呈現給使用者,要完成幾件事: 用 Filter 攔截 UserException 將錯誤訊息存到 TempData,之後呈現在畫面上 回到原本的畫面,需要產生 ViewResult 針對 Ajax 請求用 400 狀態回應,並將訊息放在 http cont...
用 Exception 作為使用者錯誤訊息的通道
›
自訂一個 UserException 來傳遞給使用者的訊息,然後程式裡只要簡單的 throw 訊息,接著就是在全域的錯誤處理中將訊息呈現給使用者。 這是一種非常方便的方式,因為可以無視 method 的階層深度,在程式的任何地方都可以將訊息傳到使用者面前。 原則上盡可能將...
週期性執行的子執行緒範本
›
關於週期性執行的子執行緒有幾個要點: 單次 Sleep 的時間不要太久,會影響程式的關閉 不可以用 SpinWait 來做程式暫停,要用 Sleep 來暫停,這樣才會釋放 CPU Error log 要注意會重複出現相同的 error 有排除重複 error 時,要記得...
重構基礎-邏輯反相
›
利用程式具有區段的能力,我們可以將 [如果 A 成立就做 B] 轉換成 [如果 A 不成立就離開] ,用這個方式做邏輯反相可以讓原本看似複雜的程式簡化很多,讓程式變得清晰思慮也會變的清晰,困難的問題就變得簡單,或著就不在是問題了。 這是一段重構前的程式: foreach...
2021-10-15
全域的 Exception 處理
›
大部分具有 Exception 機制的程式語言都有提供全域的 Exception 處理,如果你已經有用 log 去記錄錯誤的習慣的話,與其在程式裡佈滿了 try catch,不如在全域處裡中去記錄沒有被 catch 的 Exception,這樣程式就可以更乾淨了,而且程式如果發生...
讓 Net core 3.1 的 PageModel handler 可以用 AuthorizeAttribute
›
Razor Page 的 AuthorizeAttribute 只能用在 class 上,這樣就做不到細部的權限管控,為了讓 handler 也能用 AuthorizeAttribute 可以從 IPageFilter 進行處裡: using System.Linq; usi...
讓 Net core 3.1 的 PageModel 可以用 POST 的參數決定 handler
›
Razor Page 的 handler 預設只能從 URL 的 QueryString 參數 ?handler=XXXX 決定要去的 handler,這有點不方便,因為我會用 <button type="submit" name="handl...
讓 Net core 3.1 的 PageModel 可以 Properties Autowired
›
會考慮使用 Properties Autowired 是經過考慮跟評估的,畢竟 Properties Autowired 會造成負面的影響,就是 class 所相依的 class 會不清楚,很難像 Constructor 那樣清楚明白,但一般正常不會自己去建構 Controlle...
‹
›
首頁
查看網路版