CARVIEW |
Select Language
HTTP/2 200
date: Thu, 24 Jul 2025 07:47:30 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"edc5c644bd0f586587312812f1ca0962"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=EzoJO3BrJV322IUsn6PF%2BZH40EhZx51zQI%2F7pwPpZ1WXdpIm7jyHgmW0qTGOlrpzwrVZ5DGTdBQ6sc2lwEI1l0WxZlLDd%2FL9xl%2BteeMkvVoqXE%2BtsWLG1m2THRa956wJJuzd4GM4W7Tk%2FFphT0nh2QkXT5fi8KxTfBS8dZ825tP0D2ibT688%2F4cgdoV1IM6xsZCS%2FeoMHtwlFU%2BNldfJUNXmUN8PQli1IO%2B7NKdDWTGKZkfSJtWgCidWwIY6ZjH0WAAGZQyiVGWC4LS8zPvdlg%3D%3D--6HAEIdGJI128VFJ8--CguGn5wN%2FhEvmcVv3hf88Q%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1686046171.1753343249; Path=/; Domain=github.com; Expires=Fri, 24 Jul 2026 07:47:29 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Fri, 24 Jul 2026 07:47:29 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: CFE2:18BEF9:6564F1:7ED346:6881E511
Scopes · AliSoftware/Dip Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 72
Scopes
Ilya Puchka edited this page Oct 27, 2016
·
9 revisions
Dip provides 4 scopes (or life-time strategies) that you can use to register dependencies:
- The
Unique
(exPrototype
) scope will make theDependencyContainer
resolve your type as a new instance every time you callresolve
. It's a default scope in versions prior to 5.0. - The
Shared
(exObjectGraph
) scope is likeUnique
scope but it will make theDependencyContainer
to reuse resolved instances while resolving an objects graph. When graph is resolved all resolved instances will be discarded and next call toresolve
will produce new instances. This scope must be used to properly resolve circular dependencies. It's a default scope since version 5.0. - The
Singleton
andEagerSingleton
scopes will make theDependencyContainer
retain the instance once resolved the first time, and always reuse it during the container lifetime.EagerSingleton
scope makes theDependencyContainer
to resolve dependencies registered with this scope when you callbootstrap
method. Container will release singleton instances when it is reset. - The
WeakSingleton
scope is the same scope as aSingleton
, but container stores week reference to the resolved instance. While a strong reference to the resolved instance exists resolve will return the same instance. After the resolved instance is deallocated next resolve will produce a new instance.
You specify scope when you register dependency:
container.register() { ServiceImp() as Service } //.Shared is a default
container.register(.Unique) { ServiceImp() as Service }
container.register(.Singleton) { ServiceImp() as Service }
Note:
Singleton
,EagerSingleton
,WeakSingleton
scopes are not the same as Singleton pattern. There will be only one resolved instance of the component registered with these scopes per container. But they will be not shared between containers (until they collaborate) and you will be able to create another instance manually.
Warning: Make sure that components registered with
Shared
,Singleton
,EagerSingleton
orWeakSingleton
scope are thread-safe or are accessed only from a single thread.
You can’t perform that action at this time.