Wann ist ExternallyControlledLifetimeManager zu verwenden?

9

Ich habe verschiedene LifetimeManager in Unity durchgesehen und mich gefragt, wann wir ExternallyControlledLifetimeManager verwenden werden. Kann mir jemand ein richtiges Beispiel geben? Das MSDN-Dokument sagt "Ein LifetimeManager, der eine schwache Referenz auf seine verwaltete Instanz enthält" ..

Wie kann der Entwickler die Instanz verwalten und wann sollte er sich für einen solchen Lifetime Manager entscheiden? Deine Gedanken darüber, wie und wann du es benutzt hast, wären großartig für mich und andere, um es zu verstehen. Danke!

    
Abdel Raoof 23.02.2011, 08:58
quelle

1 Antwort

11

Dies kann nützlich sein, wenn Sie ein Objekt registrieren möchten, das von anderen Frameworks oder Bibliotheken erstellt wurde, und Sie nicht die Kontrolle über dessen Lebensdauer haben, z. B. ein Singleton, das von einer Bibliothek eines Drittanbieters bereitgestellt wird.

Da der Container nur eine schwache Referenz enthält, löscht der GC diesen Singleton, wenn keine starke Referenz vorhanden ist. IMO, sollten Sie es nur verwenden, wenn Sie nicht die Lebensdauer der Instanz verwalten können.

    
onof 23.02.2011, 11:26
quelle