我正试图围绕WPF中的依赖注入概念。如果我有一个Dialog,其ViewModel被定义为依赖注入,那么在运行时期间,依赖注入ViewModel初始化并给出一个值?是在Dialog的构造函数中调用的Initialize()方法吗?
public partial class LoginDialog
{
private LoginViewModel _loginViewModel;
[Dependency]
public LoginViewModel LoginViewModel
{
get { return _loginViewModel; }
set
{
...
}
}
public LoginDialog()
{
InitializeComponent();
}
}
答案 0 :(得分:2)
你的问题的答案是:它取决于(没有双关语意)。这取决于很多东西,你使用哪种DI框架(Unity,Ninject等)?在Unity中(我对这个经验有更多的经验)你必须定义一个对象的生命周期范围,并且根据它的生命周期,你可以在不同的时间完成任务。
尝试更具体:通常,当您在其中演示的依赖项属性将在实例化定义它的对象时“设置”。因此,在实例化LoginDialog
时,应设置LoginViewModel
。