【Web API】套用Unity及HelpPage所遇到的Unity錯誤問題
/
0 Comments
目前在進行這個MVC網站專案中有加入Web API(v5.2.3),在產出API postman測試文件需要先裝Help Page套件,在安裝及設定完成Help Page後直接F5執行,卻遇到問題入下:
這個問題的原因在於Unity無法建出HelpController實體,我們先看到HelpController預設產出的建構子有兩個如下
這個問題的原因在於Unity無法建出HelpController實體,我們先看到HelpController預設產出的建構子有兩個如下
public HelpController() : this(GlobalConfiguration.Configuration) { } public HelpController(HttpConfiguration config) { Configuration = config; }在預設情況下Unity選擇走參數多的建構子,又因為我們沒在UnityConfig中註冊HelpController的產生方式,才會得到這樣的錯誤訊息。
解決方法:
簡單的說,在不去設定Unity的解法中,我們只要讓Unity去執行沒有傳入參數的建構子即可解決這個問題,所以這裡推薦的解決方法是把上面的第二個建構子public改為protected,讓Unity取不到這個帶有參數的建構子,就只能去抓沒參數的建構子,這樣問題就解決了~public HelpController() : this(GlobalConfiguration.Configuration) { } protected HelpController(HttpConfiguration config) { Configuration = config; }