2017-06-06 27 views
1

當瀏覽主應用程序引導程序時,InjectionProxy用於註冊實例和接口。我注意到接口可以註冊爲InstanceType.SingleInstance(在Tesla應用程序中爲數據庫完成)或InstanceType.EachResolve。進一步研究InjectionProxy的代碼表明實例始終是SingleInstanceExrin InjectionProxy實例類型的含義和用法

是什麼SingleInstanceEachResolve之間的差異,我爲什麼會選擇我,接口是一個或另一個,爲什麼有些情況一直被設置爲SingleIstance

回答

1

SingleInstance意味着它只會創建一個類的副本,用於請求它的任何事情。

EachResolve,表示每個具有此接口的類都將注入該接口,將獲得該接口的新實例。

這取決於你的應用需求。在大多數情況下,SingleInstance是你想要的,但是EachResolve是在你的情況下需要一個新的實例,而不是整個應用程序中使用的那個。