Инъекция в конструктор Unity с MVVM не работает должным образом - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть один сценарий, в котором я хочу создать объект своего внедрения, когда я делаю вход в систему, но я немного не знаю о цикле моего сервисного модуля, где мое определенное отображение внедрения зависимости вызывается после моих вызовов 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>();

    }
}

Bootstrapper, т.е. где мой модуль настроен

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