2013-09-30 101 views
4

我是Ninject中的新成員,我需要一些幫助才能繼續前進。Ninject屬性注入不起作用

我有一個由web.form(演示文稿)和各種其他類庫項目組成的解決方案。

在裏面NinjectWebCommon CS文件web.form應用程序,我有以下

kernel.Bind<HttpContext>() 
     .ToMethod(ctx => HttpContext.Current).InThreadScope(); 

     kernel.Bind<HttpContextBase>() 
      .ToMethod(ctx => new HttpContextWrapper(HttpContext.Current)).InTransientScope(); 

     kernel.Bind<MPIBE.DESTINATION.CORE.SiteContext>() 
      .ToMethod(ctx => new MPIBE.DESTINATION.CORE.SiteContext(new HttpContextWrapper(HttpContext.Current))); 

我試圖得到一個類的實例(以下構造函數)

public SessionUtilities(SiteContext siteContext) 
    { 
     _siteContext = siteContext; 
    } 

而且我注意到,我可以從web.forms應用程序獲取實例,但無法從其他項目(類庫)中獲取。這有意義嗎?

我試圖通過屬性注入來獲得實例

[Inject] 
public SessionUtilities _sessionUtilities { get; set; } 

我會感謝任何評論。

感謝

回答

8

我懷疑包含您的_sessionUtilities屬性被用new,而不是通過Ninject創建的類。

如果包含實例也是由Ninject創建的,或者因爲它是使用kernel.Get()創建的,或者因爲它本身被注入,Ninject將只注入您的_sessionUtilities屬性。

+0

如上所示,通過屬性注入創建實例,而不是使用「新」。 – StrouMfios

+0

我正在談論_the包含class_的實例。包含'_sessionUtilities'屬性的類。這是如何創建的? – shamp00

+0

這個類通過new實例化...所以,這個類需要用ninject實例化呢? – StrouMfios