2011-07-20 198 views
0

我有一個來自MVVMLight的ViewModelLocator包含我的MainViewModel注入依賴關係到MVVMLight ViewModelLocator

我有另一個單身人士班ResourceLogger哪些做別的。

ResourceLoggerApp.xaml.cs使用創建:

var resourceLogger = kernel.Get<ResourceLogger>(); 

MainViewModel取決於ResourceLogger

我有問題注射ResourceLoggerMainViewModel如下:

[Inject] 
public MainViewModel(ResourceLogger resourceLogger) { ... } 

的問題是,它創建兩個ResourceLogger類。

的NinjectModule如下所示:

Bind<ResourceLogger>().ToSelf().InSingletonScope(); 
Bind<MainViewModel>().ToSelf().InSingletonScope(); 

是否有某種方式來分享App.xaml.cs和ViewModelLocator之間的內核?

我該如何解決這個問題?

回答

0

最簡單的方法是爲內核創建公共靜態類/變量,然後將其用於所有註冊和調用Get()。另一方面,您應該儘可能在整個系統中只調用一次kernel.Get()(或者至少儘可能少的調用)。