2012-07-10 29 views
2

我剛剛使用Ninject 3更新了我的應用程序。將App_Start中的文件從NinjectMVC3更改爲NinijectWebCommon.cs。感動我的文件,更新的DLL .. 現在我開始收到此錯誤:從Ninject 2移動到Ninject 3.綁定錯誤。確保提供程序正確處理創建請求

「錯誤使用激活字典{字符串,字符串}有條件的隱含的自我約束力的字典{字符串,字符串} 提供商返回null的 激活路徑: 4)依賴字典{字符串,字符串}注射入型MapWidgetViewModel的構造的參數widgetSettings 3)依賴IDetailedSearchResultCollectionWidget注射入型的構造MediaSourcesViewModel 2)依賴性ITabItem的注射參數mediaWidgets成的構造的參數的TabItems鍵入TabNavigationController 1)請求TabNavigationController

建議: 1)確保提供者正確處理創建請求。「

,這裏生成它的代碼:

public MediaSourcesViewModel(IEnumerable<IMediaSourcesDataProvider> dataProviders, 
       IEnumerable<IDetailedSearchResultCollectionWidget> mediaWidgets, 
       IMediaItemDetailsWidget itemDetailsWidget) 
     { 
     this.Description = "Source list"; 
      this.ActionName = "DisplaySourcesAsPartial"; 
      this.ControllerName = "MediaSources"; 
      this.DefaultType = "MediaManagement"; 

      _dataProviders = dataProviders; 

      MediaWidgets = new List<IDetailedSearchResultCollectionWidget>(); 
      MediaWidgets.AddRange(mediaWidgets);   //Set Tab Info 
      this.Name = "Sources"; 
     } 

的MapWidgetViewModel類被定義爲如下:

public class MapWidgetViewModel : IDetailedSearchResultCollectionWidget, IMapWidgetSettings 
{ 
    //constructor: 
    public MapWidgetViewModel(IEnumerable<IDetailedSearchResult> dataSet, 
      Dictionary<String,String> widgetSettings = null) 
     { 
      InitParentInterfaceProperties(); 
     } 
} 

最後綁定:

kernel.Bind<IDetailedSearchResultCollectionWidget>().To<MapWidgetViewModel>(); 

沒有

kernel.Bind<MapWidgetViewModel>().ToSelf(); 

感謝任何想法如何解決此問題。

非常感謝!

亞歷

回答