何时在WPF中初始化依赖注入对象?

时间:2011-10-14 17:57:42

标签: wpf dependency-injection

我正试图围绕WPF中的依赖注入概念。如果我有一个Dialog,其ViewModel被定义为依赖注入,那么在运行时期间,依赖注入ViewModel初始化并给出一个值?是在Dialog的构造函数中调用的Initialize()方法吗?

public partial class LoginDialog
    {

        private LoginViewModel _loginViewModel;

        [Dependency]
        public LoginViewModel LoginViewModel
        {
            get { return _loginViewModel; }
            set
            {
               ...
            }
        }

        public LoginDialog()
        {
            InitializeComponent();
        }
    }

1 个答案:

答案 0 :(得分:2)

你的问题的答案是:它取决于(没有双关语意)。这取决于很多东西,你使用哪种DI框架(Unity,Ninject等)?在Unity中(我对这个经验有更多的经验)你必须定义一个对象的生命周期范围,并且根据它的生命周期,你可以在不同的时间完成任务。

尝试更具体:通常,当您在其中演示的依赖项属性将在实例化定义它的对象时“设置”。因此,在实例化LoginDialog时,应设置LoginViewModel