DryIOC一直在处理单个对象



我有一个Xamarin表单应用程序,该应用程序正在将dryioc用于IoC。看来我的所有服务都会在视图超出范围后立即处理

这就是我在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) 
{

}
}

singleton受到尊重,但它会在需要时处理并创建一个新的singleton。还有人遇到这种情况吗?

Xamarin版本:5.0.0.2125
Prism版本:8.1.97
LocIOS版本:8.1.97

publicHomeViewModel(InboxService-InboxService(

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

公共HomeViewModel(IInboxService-inboxService(

我试图给实现某个接口的服务一个有意义的名称,它不仅仅是接口的名称减去I,比如DummyInboxServiceTestInboxServiceImapInboxServicePop3InboxServiceRemoteInboxService。。。从而使各个实现的实际功能更加清晰,并有助于尽早发现这些错误(很可能是打字错误(。

相关内容

最新更新