我有一种情况,我想在登录时创建注入对象,但是我不太了解循环服务模块的过程,在我的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));
}
}