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