【Web API】套用Unity及HelpPage所遇到的Unity錯誤問題

/
0 Comments
目前在進行這個MVC網站專案中有加入Web API(v5.2.3),在產出API postman測試文件需要先裝Help Page套件,在安裝及設定完成Help Page後直接F5執行,卻遇到問題入下:


這個問題的原因在於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;
}


You may also like

沒有留言: