带有MVVM的Unity构造函数注入未按预期工作

时间:2018-11-16 06:17:34

标签: c# asp.net wpf mvvm unity-container

我有一种情况,我想在登录时创建注入对象,但是我不太了解循环服务模块的过程,在我的LoginViewModel调用之后调用定义的依赖项注入映射。 因此,我的_Service对象最初为空,因为在我的ConfigureModuleCatalog调用之后LoginViewModel调用了。 我该如何纠正这个问题。实际上,如果我的对象是new Service(),我就不想使用null。 我为此使用以下代码

LoginViewModel

private readonly IService _Service;
public LoginViewModel(IService Service=null) //Also i want to make this innjection optional so i set it to NULL
{
    _Service = Service;
}

private void MethodWhereIWantToUseService()
{
    //_service is coming  NULL because configuration or mapping of injection calls after this
   _Service.MYMethod();
}

ServiceModule

public class ServicesModule : IModule
{
    public void Initialize()
    {
        var container = ServiceLocator.Current.GetInstance<IUnityContainer>();
        container.RegisterType<IService, Service>();

    }
}

引导程序,即配置我的模块的位置

public class Bootstrapper : UnityBootstrapper
{
    protected override void ConfigureModuleCatalog()
    {
        base.ConfigureModuleCatalog();
        ModuleCatalog catalog = (ModuleCatalog)this.ModuleCatalog;
        catalog.AddModule(typeof(ServicesModule));          
    }
}

0 个答案:

没有答案