Когда использовать ExternallyControlledLifetimeManager? - PullRequest
9 голосов
/ 23 февраля 2011

Я просматривал различные LifetimeManager, доступные в Unity, и мне было интересно, когда мы будем использовать ExternallyControlledLifetimeManager? Может кто-нибудь привести пример из жизни? В документе MSDN говорится: «LifetimeManager, который содержит слабую ссылку на управляемый экземпляр» ..

Как разработчик может управлять экземпляром и когда ему следует обратиться к такому пожизненному менеджеру? Ваши мысли о том, как и когда вы использовали это, было бы здорово для меня и других, чтобы понять. Спасибо!

1 Ответ

11 голосов
/ 23 февраля 2011

Это может быть полезно, если вы собираетесь зарегистрировать объект, созданный другими платформами или библиотекой, и у вас нет контроля над его жизнью, например, синглтоном, предоставленным сторонней библиотекой.

Поскольку контейнер хранит только слабую ссылку, GC удалит этот синглтон, если нет сильной ссылки.ИМО, вы должны использовать его, только если вы не можете управлять временем жизни экземпляра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...