DryIOC 不断处理单例对象

DryIOC keeps disposing singleton objects

我有一个将 dryioc 用于 IoC 的 Xamarin 表单应用程序。一旦视图超出范围,我的所有服务似乎都会被处理掉

这就是我在 app.cs

中注册服务的方式
 protected override void RegisterTypes(IContainerRegistry containerRegistry)
 {
    
     containerRegistry.RegisterSingleton<IInboxService, InboxService>();;
 }

我在 app.cs

中以这种方式解决了它
               protected override void OnInitialized()
            {
                _started = DateTime.Now;
                InitializeComponent();
                InitializeAppSettings();
               Container.Resolve<ISyncService>().Init(new List<ISyncableService>
                {
                   Container.Resolve<IInboxService>()
                });
}

当我需要在视图模型中使用它时,我会像这样将它放在构造函数中。

  public class HomeViewModel {
     public HomeViewModel(InboxService inboxService) 
     {
    
     }
}

单身人士受到尊重,但它会在需要时处理并创建一个新的。还有其他人 运行 参与其中吗?

Xamarin 版本:5.0.0.2125
棱镜版本:8.1.97
LocIOS 版本:8.1.97

public HomeViewModel(InboxService inboxService)

这会注入一个具体的 InboxService 实例,该实例独立于它可能实现的接口注册。如果你想要你的单身人士,请申请 IInboxService:

public HomeViewModel(IInboxService inboxService)

我尝试为实现某个接口的服务提供一个有意义的名称,而不仅仅是接口名称减去 I,例如 DummyInboxServiceTestInboxServiceImapInboxServicePop3InboxServiceRemoteInboxService... 从而更清楚各自的实现实际做了什么,并有助于尽早发现这些错误(很可能是打字错误)。