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
,例如 DummyInboxService
、TestInboxService
、ImapInboxService
, Pop3InboxService
、RemoteInboxService
... 从而更清楚各自的实现实际做了什么,并有助于尽早发现这些错误(很可能是打字错误)。
我有一个将 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
,例如 DummyInboxService
、TestInboxService
、ImapInboxService
, Pop3InboxService
、RemoteInboxService
... 从而更清楚各自的实现实际做了什么,并有助于尽早发现这些错误(很可能是打字错误)。