3
我正在玩演示MVC 3互聯網應用程序模板,我安裝了ServiceStack.Host.Mvc NuGet包。我遇到了Funq執行構造函數注入的問題。構造函數注入與ServiceStack MVC Powerpack + Funq
下面的代碼片段是工作的罰款:
public class HomeController : ServiceStackController
{
public ICacheClient CacheClient { get; set; }
public ActionResult Index()
{
if(CacheClient == null)
{
throw new MissingFieldException("ICacheClient");
}
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
}
下引發錯誤
無法創建接口的實例。
public class HomeController : ServiceStackController
{
private ICacheClient CacheClient { get; set; }
public ActionResult Index(ICacheClient notWorking)
{
// Get an error message...
if (notWorking == null)
{
throw new MissingFieldException("ICacheClient");
}
CacheClient = notWorking;
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
}
這不是因爲公共財產注入作品一個巨大的交易,但我想知道我錯過了什麼。在第二個例子
構造函數在哪裏?他們看起來和我一樣嗎? – mythz
是的,我弄糟了一個非常糟糕的......我明顯地把ICacheClient接口放在action方法中,而不是構造函數。感謝@mythz指出。 –