Caliburn.Micro WindowManager 和 Window 构造函数参数
Caliburn.Micro WindowManager and Window constructor parameter
看起来 Caliburn.Micro 的 WindowManager 在 WPF Windows 方面有问题,虽然该参数的类型已在 Caliburn.Micro IoC 中注册,但它具有构造函数参数。除了在构造函数中使用令人讨厌的服务定位器 IoC.Get(Of T)
之外,是否有更好的方法将所需的参数放入 Window 中?
Namespace Views
Class MainWindowView
Private _eventAggregator As IEventAggregator
Public Sub New(eventAggregator As IEventAggregator)
_eventAggregator = eventAggregator
End Sub
End Class
End Namespace
Sub ShowMainWindowView()
'Everything is correctly registered in Ioc...
Dim windowManager As New WindowManager
Dim viewModel As New MainWindowViewModel
windowManager.ShowDialog(viewModel)
'Exception is thrown about absence of parameterless constructor of MainWindowView
End Sub
我试图在新的、清晰的项目中再次重现这个问题并且它有效——它只需要在 IoC 容器中注册视图类型 (Window) 并且 WindowManager 自动注入视图的构造函数中需要依赖项。
看起来 Caliburn.Micro 的 WindowManager 在 WPF Windows 方面有问题,虽然该参数的类型已在 Caliburn.Micro IoC 中注册,但它具有构造函数参数。除了在构造函数中使用令人讨厌的服务定位器 IoC.Get(Of T)
之外,是否有更好的方法将所需的参数放入 Window 中?
Namespace Views
Class MainWindowView
Private _eventAggregator As IEventAggregator
Public Sub New(eventAggregator As IEventAggregator)
_eventAggregator = eventAggregator
End Sub
End Class
End Namespace
Sub ShowMainWindowView()
'Everything is correctly registered in Ioc...
Dim windowManager As New WindowManager
Dim viewModel As New MainWindowViewModel
windowManager.ShowDialog(viewModel)
'Exception is thrown about absence of parameterless constructor of MainWindowView
End Sub
我试图在新的、清晰的项目中再次重现这个问题并且它有效——它只需要在 IoC 容器中注册视图类型 (Window) 并且 WindowManager 自动注入视图的构造函数中需要依赖项。