查看主应用程序引导程序时,InjectionProxy
用于注册实例和接口。我注意到接口可以注册为InstanceType.SingleInstance
(在特斯拉应用程序中为数据库完成)或InstanceType.EachResolve
。进一步深入研究InjectionProxy
代码表明实例始终为SingleInstance
。
SingleInstance
和EachResolve
有什么区别,为什么我会选择我的接口为一个或另一个,为什么实例总是设置为SingleIstance
?
答案 0 :(得分:1)
SingleInstance 意味着它只会创建该类的一个副本,以便在请求它的任何内容中使用。
EachResolve ,意味着每个注入了此接口的类都会获得一个新的接口实例。
这取决于您对应用的需求。在大多数情况下,SingleInstance是你想要的,但是EveryResolve是你的情况需要一个新的实例,而不是整个你的应用程序使用的实例。