From 769cd53cb3aa79c0bd8570fcc13607defaa9c7ce Mon Sep 17 00:00:00 2001 From: Eugene Sadovoi Date: Fri, 3 Apr 2020 13:40:19 -0700 Subject: [PATCH 1/4] Integrating into solution --- src/Abstractions | 1 - src/Container | 1 - src/SpecificationTests | 1 - 3 files changed, 3 deletions(-) delete mode 160000 src/Abstractions delete mode 160000 src/Container delete mode 160000 src/SpecificationTests diff --git a/src/Abstractions b/src/Abstractions deleted file mode 160000 index fffc59a..0000000 --- a/src/Abstractions +++ /dev/null @@ -1 +0,0 @@ -Subproject commit fffc59a7cc62ecb60ec7121f247fd6840ba0be88 diff --git a/src/Container b/src/Container deleted file mode 160000 index 3ef2b1d..0000000 --- a/src/Container +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3ef2b1d75506138329119e81b0a08814fe0165b2 diff --git a/src/SpecificationTests b/src/SpecificationTests deleted file mode 160000 index a68b987..0000000 --- a/src/SpecificationTests +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a68b987fd22f7f0063430ed822aa7f7ff78dbca4 From 99e8445f2866981c7691c61193a7295f5fb73c9d Mon Sep 17 00:00:00 2001 From: Eugene Sadovoi Date: Fri, 3 Apr 2020 13:40:42 -0700 Subject: [PATCH 2/4] Integrating into solution --- .gitmodules | 10 - appveyor.yml => _appveyor.yml | 0 _site/.dependencymap.json | 1 + _site/.errors.log | 3550 +++++++++++++++++ _site/.links.json | 1 + _site/.manifest.json | 1 + _site/.publish.json | 1 + _site/.xrefmap.json | 1 + _site/api/index.html | 1 + _site/api/toc.json | 1 + _site/articles/application/index.html | 1 + _site/articles/changelog/index.html | 1 + _site/articles/design/index.html | 1 + _site/articles/features/index.html | 1 + _site/articles/history/index.html | 1 + _site/articles/installation/index.html | 1 + _site/articles/introduction/index.html | 1 + _site/articles/quickstart/index.html | 1 + _site/articles/toc.json | 1 + _site/filemap.json | 1 + _site/full-dependent-list.txt | 345 ++ _site/index.html | 1 + _site/op_aggregated_file_map_info.json | 1 + _site/readme/index.html | 1 + _site/server-side-dependent-list.txt | 345 ++ _site/specs/constructor/index.html | 1 + _site/specs/field/index.html | 1 + _site/specs/hierarchy/index.html | 1 + _site/specs/method/index.html | 1 + _site/specs/property/index.html | 1 + _site/specs/specification/index.html | 1 + _site/specs/summary/index.html | 1 + _site/specs/toc.json | 1 + _site/specs/workflow/index.html | 1 + _site/toc.json | 1 + .../annotation/annotation/index.html | 1 + .../annotation/constructor/index.html | 1 + _site/tutorials/annotation/field/index.html | 1 + _site/tutorials/annotation/method/index.html | 1 + .../tutorials/annotation/parameter/index.html | 1 + .../tutorials/annotation/property/index.html | 1 + .../composition/buildup/buildup/index.html | 1 + .../composition/collections/index.html | 1 + .../composition/composition/index.html | 1 + .../composition/generics/deferred/index.html | 1 + .../composition/generics/generics/index.html | 1 + .../composition/generics/lazy/index.html | 1 + .../composition/generics/metadata/index.html | 1 + .../composition/mapping/generic/index.html | 1 + .../mapping/implementation/index.html | 1 + .../composition/mapping/mapping/index.html | 1 + .../overrides/dependency/index.html | 1 + .../composition/overrides/field/index.html | 1 + .../composition/overrides/override/index.html | 1 + .../overrides/parameter/index.html | 1 + .../composition/overrides/property/index.html | 1 + .../resolution/resolution/index.html | 1 + .../composition/resolution/type/index.html | 1 + .../selection/constructor/index.html | 1 + .../selection/selection/index.html | 1 + _site/tutorials/definitions/index.html | 1 + .../extensions/activation/index.html | 1 + .../extensions/compilation/index.html | 1 + .../extensions/diagnostic/index.html | 1 + .../extensions/extensions/index.html | 1 + _site/tutorials/extensions/legacy/index.html | 1 + _site/tutorials/hierarchies/index.html | 1 + _site/tutorials/lifetime/container/index.html | 1 + .../lifetime/container_transient/index.html | 1 + _site/tutorials/lifetime/disposal/index.html | 1 + _site/tutorials/lifetime/external/index.html | 1 + .../lifetime/hierarchical/index.html | 1 + _site/tutorials/lifetime/lifetime/index.html | 1 + _site/tutorials/lifetime/managers/index.html | 1 + _site/tutorials/lifetime/resolve/index.html | 1 + _site/tutorials/lifetime/singleton/index.html | 1 + _site/tutorials/lifetime/thread/index.html | 1 + _site/tutorials/lifetime/transient/index.html | 1 + .../tutorials/registration/factory/index.html | 1 + .../registration/instance/index.html | 1 + .../registration/metadata/index.html | 1 + .../registration/registration/index.html | 1 + .../type/constructor/annotation/index.html | 1 + .../type/constructor/automatic/index.html | 1 + .../type/constructor/constructor/index.html | 1 + .../type/constructor/param_count/index.html | 1 + .../type/constructor/param_none/index.html | 1 + .../type/constructor/param_types/index.html | 1 + .../type/constructor/param_values/index.html | 1 + .../registration/type/field/index.html | 1 + .../type/injection/default/index.html | 1 + .../type/injection/injected/index.html | 1 + .../type/injection/injection/index.html | 1 + .../type/injection/resolved/index.html | 1 + .../registration/type/method/index.html | 1 + .../registration/type/parameter/index.html | 1 + .../registration/type/property/index.html | 1 + .../registration/type/registration/index.html | 1 + _site/tutorials/toc.json | 1 + articles/installation.md | 4 +- docfx.json | 16 +- specs/specification.md | 6 +- src/Documentation.sln | 91 - tutorials/Composition/Mapping/mapping.md | 6 +- tutorials/registration/instance.md | 2 +- tutorials/registration/metadata.md | 2 +- 106 files changed, 4355 insertions(+), 116 deletions(-) delete mode 100644 .gitmodules rename appveyor.yml => _appveyor.yml (100%) create mode 100644 _site/.dependencymap.json create mode 100644 _site/.errors.log create mode 100644 _site/.links.json create mode 100644 _site/.manifest.json create mode 100644 _site/.publish.json create mode 100644 _site/.xrefmap.json create mode 100644 _site/api/index.html create mode 100644 _site/api/toc.json create mode 100644 _site/articles/application/index.html create mode 100644 _site/articles/changelog/index.html create mode 100644 _site/articles/design/index.html create mode 100644 _site/articles/features/index.html create mode 100644 _site/articles/history/index.html create mode 100644 _site/articles/installation/index.html create mode 100644 _site/articles/introduction/index.html create mode 100644 _site/articles/quickstart/index.html create mode 100644 _site/articles/toc.json create mode 100644 _site/filemap.json create mode 100644 _site/full-dependent-list.txt create mode 100644 _site/index.html create mode 100644 _site/op_aggregated_file_map_info.json create mode 100644 _site/readme/index.html create mode 100644 _site/server-side-dependent-list.txt create mode 100644 _site/specs/constructor/index.html create mode 100644 _site/specs/field/index.html create mode 100644 _site/specs/hierarchy/index.html create mode 100644 _site/specs/method/index.html create mode 100644 _site/specs/property/index.html create mode 100644 _site/specs/specification/index.html create mode 100644 _site/specs/summary/index.html create mode 100644 _site/specs/toc.json create mode 100644 _site/specs/workflow/index.html create mode 100644 _site/toc.json create mode 100644 _site/tutorials/annotation/annotation/index.html create mode 100644 _site/tutorials/annotation/constructor/index.html create mode 100644 _site/tutorials/annotation/field/index.html create mode 100644 _site/tutorials/annotation/method/index.html create mode 100644 _site/tutorials/annotation/parameter/index.html create mode 100644 _site/tutorials/annotation/property/index.html create mode 100644 _site/tutorials/composition/buildup/buildup/index.html create mode 100644 _site/tutorials/composition/collections/index.html create mode 100644 _site/tutorials/composition/composition/index.html create mode 100644 _site/tutorials/composition/generics/deferred/index.html create mode 100644 _site/tutorials/composition/generics/generics/index.html create mode 100644 _site/tutorials/composition/generics/lazy/index.html create mode 100644 _site/tutorials/composition/generics/metadata/index.html create mode 100644 _site/tutorials/composition/mapping/generic/index.html create mode 100644 _site/tutorials/composition/mapping/implementation/index.html create mode 100644 _site/tutorials/composition/mapping/mapping/index.html create mode 100644 _site/tutorials/composition/overrides/dependency/index.html create mode 100644 _site/tutorials/composition/overrides/field/index.html create mode 100644 _site/tutorials/composition/overrides/override/index.html create mode 100644 _site/tutorials/composition/overrides/parameter/index.html create mode 100644 _site/tutorials/composition/overrides/property/index.html create mode 100644 _site/tutorials/composition/resolution/resolution/index.html create mode 100644 _site/tutorials/composition/resolution/type/index.html create mode 100644 _site/tutorials/composition/selection/constructor/index.html create mode 100644 _site/tutorials/composition/selection/selection/index.html create mode 100644 _site/tutorials/definitions/index.html create mode 100644 _site/tutorials/extensions/activation/index.html create mode 100644 _site/tutorials/extensions/compilation/index.html create mode 100644 _site/tutorials/extensions/diagnostic/index.html create mode 100644 _site/tutorials/extensions/extensions/index.html create mode 100644 _site/tutorials/extensions/legacy/index.html create mode 100644 _site/tutorials/hierarchies/index.html create mode 100644 _site/tutorials/lifetime/container/index.html create mode 100644 _site/tutorials/lifetime/container_transient/index.html create mode 100644 _site/tutorials/lifetime/disposal/index.html create mode 100644 _site/tutorials/lifetime/external/index.html create mode 100644 _site/tutorials/lifetime/hierarchical/index.html create mode 100644 _site/tutorials/lifetime/lifetime/index.html create mode 100644 _site/tutorials/lifetime/managers/index.html create mode 100644 _site/tutorials/lifetime/resolve/index.html create mode 100644 _site/tutorials/lifetime/singleton/index.html create mode 100644 _site/tutorials/lifetime/thread/index.html create mode 100644 _site/tutorials/lifetime/transient/index.html create mode 100644 _site/tutorials/registration/factory/index.html create mode 100644 _site/tutorials/registration/instance/index.html create mode 100644 _site/tutorials/registration/metadata/index.html create mode 100644 _site/tutorials/registration/registration/index.html create mode 100644 _site/tutorials/registration/type/constructor/annotation/index.html create mode 100644 _site/tutorials/registration/type/constructor/automatic/index.html create mode 100644 _site/tutorials/registration/type/constructor/constructor/index.html create mode 100644 _site/tutorials/registration/type/constructor/param_count/index.html create mode 100644 _site/tutorials/registration/type/constructor/param_none/index.html create mode 100644 _site/tutorials/registration/type/constructor/param_types/index.html create mode 100644 _site/tutorials/registration/type/constructor/param_values/index.html create mode 100644 _site/tutorials/registration/type/field/index.html create mode 100644 _site/tutorials/registration/type/injection/default/index.html create mode 100644 _site/tutorials/registration/type/injection/injected/index.html create mode 100644 _site/tutorials/registration/type/injection/injection/index.html create mode 100644 _site/tutorials/registration/type/injection/resolved/index.html create mode 100644 _site/tutorials/registration/type/method/index.html create mode 100644 _site/tutorials/registration/type/parameter/index.html create mode 100644 _site/tutorials/registration/type/property/index.html create mode 100644 _site/tutorials/registration/type/registration/index.html create mode 100644 _site/tutorials/toc.json delete mode 100644 src/Documentation.sln diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index fff1af1..0000000 --- a/.gitmodules +++ /dev/null @@ -1,10 +0,0 @@ -[submodule "src/Abstractions"] - path = src/Abstractions - url = https://github.com/unitycontainer/abstractions.git -[submodule "src/Container"] - path = src/Container - url = https://github.com/unitycontainer/container.git - branch = v5.x -[submodule "src/SpecificationTests"] - path = src/SpecificationTests - url = https://github.com/unitycontainer/specification-tests.git diff --git a/appveyor.yml b/_appveyor.yml similarity index 100% rename from appveyor.yml rename to _appveyor.yml diff --git a/_site/.dependencymap.json b/_site/.dependencymap.json new file mode 100644 index 0000000..4ddb3fd --- /dev/null +++ b/_site/.dependencymap.json @@ -0,0 +1 @@ +{"dependencies":{"articles/design.md":[{"source":"articles/application.md","type":"uidInclusion"}],"articles/quickstart.md":[{"source":"tutorials/Composition/Mapping/mapping.md","type":"uidInclusion"},{"source":"tutorials/Composition/Selection/selection.md","type":"uidInclusion"},{"source":"tutorials/lifetime/lifetime.md","type":"uidInclusion"}],"articles/toc.yml":[{"source":"articles/application.md","type":"uidInclusion"},{"source":"articles/changelog.md","type":"uidInclusion"},{"source":"articles/design.md","type":"uidInclusion"},{"source":"articles/features.md","type":"uidInclusion"},{"source":"articles/installation.md","type":"uidInclusion"},{"source":"articles/introduction.md","type":"uidInclusion"},{"source":"articles/quickstart.md","type":"uidInclusion"}],"specs/specification.md":[{"source":"specs/workflow.md","type":"inclusion"}],"specs/toc.yml":[{"source":"specs/field.md","type":"uidInclusion"},{"source":"specs/method.md","type":"uidInclusion"},{"source":"specs/property.md","type":"uidInclusion"},{"source":"specs/specification.md","type":"uidInclusion"}],"toc.yml":[{"source":"api/toc.yml","type":"tocInclusion"},{"source":"articles/introduction.md","type":"link"},{"source":"articles/toc.yml","type":"tocInclusion"},{"source":"tutorials/hierarchies.md","type":"link"},{"source":"tutorials/toc.yml","type":"tocInclusion"}],"tutorials/Annotation/annotation.md":[{"source":"tutorials/Annotation/constructor.md","type":"uidInclusion"},{"source":"tutorials/Annotation/field.md","type":"uidInclusion"},{"source":"tutorials/Annotation/method.md","type":"uidInclusion"},{"source":"tutorials/Annotation/parameter.md","type":"uidInclusion"},{"source":"tutorials/Annotation/property.md","type":"uidInclusion"}],"tutorials/Annotation/constructor.md":[{"source":"tutorials/Composition/Selection/constructor.md","type":"uidInclusion"},{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/constructor.md","type":"uidInclusion"}],"tutorials/Annotation/method.md":[{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"}],"tutorials/Annotation/toc.yml":[{"source":"tutorials/Annotation/constructor.md","type":"uidInclusion"},{"source":"tutorials/Annotation/field.md","type":"uidInclusion"},{"source":"tutorials/Annotation/method.md","type":"uidInclusion"},{"source":"tutorials/Annotation/parameter.md","type":"uidInclusion"},{"source":"tutorials/Annotation/property.md","type":"uidInclusion"}],"tutorials/Composition/BuildUp/toc.yml":[{"source":"tutorials/Composition/BuildUp/buildup.md","type":"uidInclusion"}],"tutorials/Composition/Generics/toc.yml":[{"source":"tutorials/Composition/Generics/deferred.md","type":"uidInclusion"},{"source":"tutorials/Composition/Generics/lazy.md","type":"uidInclusion"},{"source":"tutorials/Composition/Generics/metadata.md","type":"uidInclusion"}],"tutorials/Composition/Mapping/toc.yml":[{"source":"tutorials/Composition/Mapping/generic.md","type":"uidInclusion"},{"source":"tutorials/Composition/Mapping/implementation.md","type":"uidInclusion"}],"tutorials/Composition/Overrides/override.md":[{"source":"tutorials/Composition/Overrides/dependency.md","type":"uidInclusion"},{"source":"tutorials/Composition/Overrides/field.md","type":"uidInclusion"},{"source":"tutorials/Composition/Overrides/parameter.md","type":"uidInclusion"},{"source":"tutorials/Composition/Overrides/property.md","type":"uidInclusion"}],"tutorials/Composition/Overrides/toc.yml":[{"source":"tutorials/Composition/Overrides/dependency.md","type":"uidInclusion"},{"source":"tutorials/Composition/Overrides/field.md","type":"uidInclusion"},{"source":"tutorials/Composition/Overrides/parameter.md","type":"uidInclusion"},{"source":"tutorials/Composition/Overrides/property.md","type":"uidInclusion"}],"tutorials/Composition/Resolution/resolution.md":[{"source":"tutorials/Composition/Generics/deferred.md","type":"uidInclusion"},{"source":"tutorials/Composition/Generics/generics.md","type":"uidInclusion"},{"source":"tutorials/Composition/Overrides/override.md","type":"uidInclusion"},{"source":"tutorials/Composition/Resolution/type.md","type":"uidInclusion"},{"source":"tutorials/Composition/collections.md","type":"uidInclusion"}],"tutorials/Composition/Resolution/toc.yml":[{"source":"tutorials/Composition/Resolution/resolution.md","type":"uidInclusion"},{"source":"tutorials/Composition/Resolution/type.md","type":"link"}],"tutorials/Composition/Selection/constructor.md":[{"source":"tutorials/Annotation/annotation.md","type":"uidInclusion"},{"source":"tutorials/Annotation/constructor.md","type":"uidInclusion"},{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/constructor.md","type":"uidInclusion"},{"source":"tutorials/registration/metadata.md","type":"uidInclusion"},{"source":"tutorials/registration/registration.md","type":"uidInclusion"}],"tutorials/Composition/Selection/toc.yml":[{"source":"tutorials/Composition/Selection/constructor.md","type":"uidInclusion"}],"tutorials/Composition/composition.md":[{"source":"tutorials/Composition/Resolution/resolution.md","type":"uidInclusion"}],"tutorials/Composition/toc.yml":[{"source":"tutorials/Composition/BuildUp/toc.yml","type":"tocInclusion"},{"source":"tutorials/Composition/Generics/toc.yml","type":"tocInclusion"},{"source":"tutorials/Composition/Mapping/toc.yml","type":"tocInclusion"},{"source":"tutorials/Composition/Overrides/toc.yml","type":"tocInclusion"},{"source":"tutorials/Composition/Resolution/toc.yml","type":"tocInclusion"},{"source":"tutorials/Composition/Selection/toc.yml","type":"tocInclusion"},{"source":"tutorials/Composition/collections.md","type":"link"}],"tutorials/Extensions/toc.yml":[{"source":"tutorials/Extensions/activation.md","type":"uidInclusion"},{"source":"tutorials/Extensions/compilation.md","type":"uidInclusion"},{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"},{"source":"tutorials/Extensions/legacy.md","type":"uidInclusion"}],"tutorials/lifetime/container.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"}],"tutorials/lifetime/container_transient.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/registration.md","type":"uidInclusion"},{"source":"tutorials/registration/factory.md","type":"uidInclusion"},{"source":"tutorials/registration/instance.md","type":"uidInclusion"}],"tutorials/lifetime/external.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"},{"source":"tutorials/registration/instance.md","type":"uidInclusion"}],"tutorials/lifetime/hierarchical.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/registration.md","type":"uidInclusion"},{"source":"tutorials/registration/factory.md","type":"uidInclusion"},{"source":"tutorials/registration/instance.md","type":"uidInclusion"}],"tutorials/lifetime/lifetime.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"}],"tutorials/lifetime/managers.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"}],"tutorials/lifetime/resolve.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/registration.md","type":"uidInclusion"},{"source":"tutorials/registration/factory.md","type":"uidInclusion"},{"source":"tutorials/registration/instance.md","type":"uidInclusion"}],"tutorials/lifetime/singleton.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"}],"tutorials/lifetime/thread.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/registration.md","type":"uidInclusion"},{"source":"tutorials/registration/factory.md","type":"uidInclusion"},{"source":"tutorials/registration/instance.md","type":"uidInclusion"}],"tutorials/lifetime/toc.yml":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"}],"tutorials/lifetime/transient.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/annotation.md":[{"source":"tutorials/Annotation/constructor.md","type":"inclusion"},{"source":"tutorials/Composition/Selection/constructor.md","type":"uidInclusion"},{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/automatic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/constructor.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_count.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_none.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_types.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_values.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/automatic.md":[{"source":"tutorials/Annotation/annotation.md","type":"uidInclusion"},{"source":"tutorials/Annotation/constructor.md","type":"uidInclusion"},{"source":"tutorials/Composition/Selection/constructor.md","type":"inclusion"},{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/annotation.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/constructor.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_count.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_none.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_types.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_values.md","type":"uidInclusion"},{"source":"tutorials/registration/metadata.md","type":"uidInclusion"},{"source":"tutorials/registration/registration.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/constructor.md":[{"source":"tutorials/Annotation/constructor.md","type":"uidInclusion"},{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/annotation.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/automatic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_count.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_none.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_types.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_values.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/param_count.md":[{"source":"tutorials/registration/Type/Constructor/annotation.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/automatic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_none.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_types.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_values.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/param_none.md":[{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/annotation.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/automatic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_count.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_types.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_values.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/param_types.md":[{"source":"tutorials/registration/Type/Constructor/annotation.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/automatic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_count.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_none.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_values.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/param_values.md":[{"source":"tutorials/registration/Type/Constructor/annotation.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/automatic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_count.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_none.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_types.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/toc.yml":[{"source":"tutorials/registration/Type/Constructor/annotation.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/automatic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_count.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_none.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_types.md","type":"uidInclusion"}],"tutorials/registration/Type/Injection/toc.yml":[{"source":"tutorials/registration/Type/Injection/default.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Injection/injected.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Injection/resolved.md","type":"uidInclusion"}],"tutorials/registration/Type/registration.md":[{"source":"tutorials/lifetime/lifetime.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/constructor.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/field.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/method.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/property.md","type":"uidInclusion"}],"tutorials/registration/Type/toc.yml":[{"source":"tutorials/registration/Type/Constructor/toc.yml","type":"tocInclusion"},{"source":"tutorials/registration/Type/Injection/toc.yml","type":"tocInclusion"},{"source":"tutorials/registration/Type/field.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/method.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/property.md","type":"uidInclusion"}],"tutorials/registration/instance.md":[{"source":"tutorials/Composition/Mapping/mapping.md","type":"uidInclusion"},{"source":"tutorials/registration/metadata.md","type":"uidInclusion"}],"tutorials/registration/metadata.md":[{"source":"tutorials/Composition/Mapping/mapping.md","type":"uidInclusion"},{"source":"tutorials/lifetime/lifetime.md","type":"link"}],"tutorials/registration/registration.md":[{"source":"tutorials/hierarchies.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/registration.md","type":"uidInclusion"},{"source":"tutorials/registration/factory.md","type":"uidInclusion"},{"source":"tutorials/registration/instance.md","type":"uidInclusion"}],"tutorials/registration/toc.yml":[{"source":"tutorials/registration/Type/toc.yml","type":"tocInclusion"},{"source":"tutorials/registration/factory.md","type":"uidInclusion"},{"source":"tutorials/registration/instance.md","type":"uidInclusion"},{"source":"tutorials/registration/metadata.md","type":"uidInclusion"}],"tutorials/toc.yml":[{"source":"tutorials/Annotation/toc.yml","type":"tocInclusion"},{"source":"tutorials/Composition/toc.yml","type":"tocInclusion"},{"source":"tutorials/Extensions/toc.yml","type":"tocInclusion"},{"source":"tutorials/hierarchies.md","type":"uidInclusion"},{"source":"tutorials/lifetime/toc.yml","type":"tocInclusion"},{"source":"tutorials/registration/toc.yml","type":"tocInclusion"}]}} \ No newline at end of file diff --git a/_site/.errors.log b/_site/.errors.log new file mode 100644 index 0000000..82dbd52 --- /dev/null +++ b/_site/.errors.log @@ -0,0 +1,3550 @@ +["warning","file-not-found","Invalid file link: '[Unity](https://www.nuget.org/packages/Unity/)'.","articles/installation.md",11,257] +["warning","file-not-found","Invalid file link: '[Unity](https://www.nuget.org/packages/Unity/)'.","articles/installation.md",15,21] +["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",33,1] +["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",36,1] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] +["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] +["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] +["warning","file-not-found","Invalid file link: 'mapping.md'.","tutorials/registration/instance.md",46,200] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] +["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] +["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] +["warning","file-not-found","Invalid file link: 'mapping.md'.","tutorials/registration/metadata.md",67,26] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] +["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] +["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] +["warning","file-not-found","Invalid file link: '[Unity](https://www.nuget.org/packages/Unity)'.","articles/installation.md",11,257] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] +["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",33,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] +["warning","file-not-found","Invalid file link: '[Unity](https://www.nuget.org/packages/Unity/)'.","articles/installation.md",15,21] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] +["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",36,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] +["warning","file-not-found","Invalid file link: 'mapping.md'.","tutorials/registration/instance.md",46,200] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] +["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] +["warning","file-not-found","Invalid file link: 'mapping.md'.","tutorials/registration/metadata.md",67,26] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] +["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] +["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] +["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] +["warning","file-not-found","Invalid file link: '[Unity](https://www.nuget.org/packages/Unity/)'.","articles/installation.md",15,21] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] +["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",33,1] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] +["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] +["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",36,1] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] +["warning","file-not-found","Invalid file link: 'mapping.md'.","tutorials/registration/instance.md",46,200] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] +["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] +["warning","file-not-found","Invalid file link: 'mapping.md'.","tutorials/registration/metadata.md",67,26] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] +["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] +["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] +["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] +["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",33,1] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] +["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] +["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",36,1] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] +["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] +["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] +["warning","file-not-found","Invalid file link: 'mapping.md'.","tutorials/registration/metadata.md",67,26] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] +["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] +["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] +["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",33,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] +["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] +["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",36,1] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] +["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] +["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] +["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] +["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] +["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",33,1] +["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",36,1] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] +["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] +["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] +["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] +["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] +["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] +["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",33,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] +["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] +["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",36,1] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] +["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] +["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] +["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] +["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] +["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] +["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] +["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] +["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] +["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] +["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] +["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] +["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] +["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] +["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] +["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] +["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] +["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] +["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] +["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] +["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] +["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] +["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] +["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] +["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IPolicySet.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolve.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuilderStrategy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolveDelegate-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.ChildContainerCreatedEventArgs.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IContainerRegistration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.ResolveDelegateFactory.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicyEntry.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.Typed_InjectionValue.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ForceActivation.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InstanceLifetime.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.ExecutePlanDelegate.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.TypeResolver.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.NamedTypeBuildKey-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.SectionExtensionContext.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.ValueElementHelper.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ValueElementHelper.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Diagnostic.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolverImpl.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Storage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ITypeLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IResolveDelegateFactory.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.TypeBasedOverride-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.UnityContainerExtension.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.IExtensionContext.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderStage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Storage.ElementHandlerMap-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DiagnosticExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.IllegalInjectionMethodException.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.TypeBasedOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.FieldOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ConfigurationElementExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.StagedStrategyChainExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.ResolvePlanDelegate.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.RegistrationSet.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.SelectorDelegate-3.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicBuildPlanGenerationContext.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.PolicySetDebugProxy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ForceCompillation.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.FactoryLifetime.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.IUnityContainerExtensionConfigurator.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuildKeyMappingStrategy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.MemberSelector-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.Legacy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedArrayParameter-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ExternallyControlledLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.RegisterInstanceEventArgs.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedArrayParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolverFactory-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Collections.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.SupportedMembers.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericBase.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Override.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Factories.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.ConstructorSelection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Factories.EnumerableResolver.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.NamedEventArgs.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMember.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.Policy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMatching.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionParameter-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericResolvedArrayParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.IInstanceLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ILifetimeContainer.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.RegistrationSet.Entry.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.NamedType.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DefaultLifetime.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IBuildPlanCreatorPolicy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.LifetimeStrategy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.SelectionStage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalGenericParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Invoke.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.DefaultPolicies.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.XmlWriterExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.UnknownElementHandlerMap-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.PropertyProcessor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.SingletonLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.PerResolveLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedParameter-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.TypeResolverImpl.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.SynchronizedLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.DependencyOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MemberProcessor-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.DependencyOverride-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.HierarchicalLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.PropertyOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MemberProcessor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.InternalRegistration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.IDefaultPolicy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.MemberInfoBase-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ParameterOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.DictionaryExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeManager.InvalidValue.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolver.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolve.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ExtensionElementMap.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeContainer.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ParameterValue.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InjectionMethodAttribute.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AliasElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMember-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.MethodBase-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicyList.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.NamedElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AssemblyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.SectionExtensionElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionProperty.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ParametersProcessor-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionConstructor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConstructorElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainer.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InjectionConstructorAttribute.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.StagedStrategyChain-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.PropertyDiagnostic.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.OptionalDependencyAttribute.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DependencyResolutionAttribute.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.PolicySetExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMethod.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.OptionalElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ArrayElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ArrayElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DependencyAttribute.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.InjectionMemberElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.MethodElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.RegisterElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.DependencyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ConstructorDiagnostic.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.LifetimeElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerExtensionElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ParameterBase.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.SectionExtensionElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.DependencyMissingException.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.RegisterElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerExtensionElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.UnityContainerExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.UnityConfigurationSection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.LifetimeElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainerAsyncExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.UnityBuildStage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ObjectBuilder.BuildPlan.DynamicMethod.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InstanceElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ParameterOverrides.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ValueElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolveContext.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamespaceElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ValueElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.PropertyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.IFactoryLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AliasElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.SectionExtension.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.TypeLifetime.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.SectionExtensionElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.PropertyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Collections.RegistrationElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.IStagedStrategyChain-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainerExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.Injection_ParameterValue.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IPolicyList.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IBuildPlanPolicy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MethodDiagnostic.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AliasElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ExtensionExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.NamespaceElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.DictionaryExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ContainerControlledLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolverFactory-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.XmlWriterExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ConstructorProcessor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.QuickSet-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.RegisterEventArgs.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InjectionMemberElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AssemblyElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InjectionMemberElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InstanceElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.LinkedNode-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerExtensionElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterValueElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.SectionExtensionElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InstanceElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.UnityContainerExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.ConfigurationElementExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterValueElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.NamedTypeBuildKey.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.RegisterElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.FieldProcessor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalParameter-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.SelectionStage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.IRegistry-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AssemblyElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.OptionalElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.ArrayResolveStrategy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.ParameterValueElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerExtensionElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.FieldDiagnostic.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.TransientLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuildPlanStrategy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.PerThreadLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolverOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.ContainerRegistration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElementCollection-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.NamespaceElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AssemblyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.FieldElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.RegistrationElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InstanceElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionField.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.MethodElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.ContainerConfiguringElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MethodProcessor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamespaceElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IUnityContainerAsync.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.RegisterElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElementCollectionBase-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.UnityConfigurationSection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConstructorElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AliasElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Inject.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerConfiguringElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.DependencyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.IValueProvidingElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ContainerControlledTransientManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IUnityContainer.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ResolutionFailedException.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamedElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerConfiguringElementCollection.yml",1,1] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration'","api/toc.yml",2,8] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AliasElement'","api/toc.yml",5,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AliasElementCollection'","api/toc.yml",7,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ArrayElement'","api/toc.yml",9,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AssemblyElement'","api/toc.yml",11,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AssemblyElementCollection'","api/toc.yml",13,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConstructorElement'","api/toc.yml",15,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerConfiguringElementCollection'","api/toc.yml",17,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerElement'","api/toc.yml",19,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerElementCollection'","api/toc.yml",21,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerExtensionElement'","api/toc.yml",23,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerExtensionElementCollection'","api/toc.yml",25,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.DependencyElement'","api/toc.yml",27,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElement'","api/toc.yml",29,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElementCollection'","api/toc.yml",31,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InjectionMemberElementCollection'","api/toc.yml",33,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InstanceElement'","api/toc.yml",35,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InstanceElementCollection'","api/toc.yml",37,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.LifetimeElement'","api/toc.yml",39,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.MethodElement'","api/toc.yml",41,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamedElement'","api/toc.yml",43,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamespaceElement'","api/toc.yml",45,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamespaceElementCollection'","api/toc.yml",47,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.OptionalElement'","api/toc.yml",49,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterElement'","api/toc.yml",51,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterElementCollection'","api/toc.yml",53,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterValueElementCollection'","api/toc.yml",55,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.PropertyElement'","api/toc.yml",57,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.RegisterElement'","api/toc.yml",59,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.RegisterElementCollection'","api/toc.yml",61,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.SectionExtensionElement'","api/toc.yml",63,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.SectionExtensionElementCollection'","api/toc.yml",65,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.UnityConfigurationSection'","api/toc.yml",67,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.UnityContainerExtensions'","api/toc.yml",69,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ValueElement'","api/toc.yml",71,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers'","api/toc.yml",73,8] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ConfigurationElementExtensions'","api/toc.yml",76,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.DictionaryExtensions'","api/toc.yml",78,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolver'","api/toc.yml",80,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolverImpl'","api/toc.yml",82,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.UnknownElementHandlerMap`1'","api/toc.yml",84,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ValueElementHelper'","api/toc.yml",87,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.XmlWriterExtensions'","api/toc.yml",89,10] +["warning","xref-not-found","Cross reference not found: 'Unity'","api/toc.yml",91,8] +["warning","xref-not-found","Cross reference not found: 'Unity.DefaultLifetime'","api/toc.yml",94,10] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","api/toc.yml",96,10] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyResolutionAttribute'","api/toc.yml",98,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Diagnostic'","api/toc.yml",100,10] +["warning","xref-not-found","Cross reference not found: 'Unity.DiagnosticExtensions'","api/toc.yml",102,10] +["warning","xref-not-found","Cross reference not found: 'Unity.ExtensionExtensions'","api/toc.yml",104,10] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","api/toc.yml",106,10] +["warning","xref-not-found","Cross reference not found: 'Unity.ForceActivation'","api/toc.yml",108,10] +["warning","xref-not-found","Cross reference not found: 'Unity.ForceCompillation'","api/toc.yml",110,10] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","api/toc.yml",112,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Inject'","api/toc.yml",114,10] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","api/toc.yml",116,10] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","api/toc.yml",118,10] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","api/toc.yml",120,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","api/toc.yml",122,10] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","api/toc.yml",124,10] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainerAsync'","api/toc.yml",126,10] +["warning","xref-not-found","Cross reference not found: 'Unity.MemberSelector`2'","api/toc.yml",128,10] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","api/toc.yml",131,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Override'","api/toc.yml",133,10] +["warning","xref-not-found","Cross reference not found: 'Unity.ResolutionFailedException'","api/toc.yml",135,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolve'","api/toc.yml",137,10] +["warning","xref-not-found","Cross reference not found: 'Unity.SupportedMembers'","api/toc.yml",139,10] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","api/toc.yml",141,10] +["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainer'","api/toc.yml",143,10] +["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainerAsyncExtensions'","api/toc.yml",145,10] +["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainerExtensions'","api/toc.yml",147,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder'","api/toc.yml",149,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext'","api/toc.yml",152,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext.ExecutePlanDelegate'","api/toc.yml",154,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext.ResolvePlanDelegate'","api/toc.yml",156,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderStage'","api/toc.yml",158,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.NamedTypeBuildKey'","api/toc.yml",160,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.NamedTypeBuildKey`1'","api/toc.yml",162,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.SelectionStage'","api/toc.yml",165,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.UnityBuildStage'","api/toc.yml",167,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration'","api/toc.yml",169,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AliasElement'","api/toc.yml",172,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AliasElementCollection'","api/toc.yml",174,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ArrayElement'","api/toc.yml",176,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AssemblyElement'","api/toc.yml",178,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AssemblyElementCollection'","api/toc.yml",180,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConstructorElement'","api/toc.yml",182,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerConfiguringElementCollection'","api/toc.yml",184,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerElement'","api/toc.yml",186,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerElementCollection'","api/toc.yml",188,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerExtensionElement'","api/toc.yml",190,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerExtensionElementCollection'","api/toc.yml",192,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.DependencyElement'","api/toc.yml",194,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ExtensionElementMap'","api/toc.yml",196,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.FieldElement'","api/toc.yml",198,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.IDefaultPolicy'","api/toc.yml",200,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InjectionMemberElementCollection'","api/toc.yml",202,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InstanceElement'","api/toc.yml",204,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InstanceElementCollection'","api/toc.yml",206,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.LifetimeElement'","api/toc.yml",208,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.MethodElement'","api/toc.yml",210,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.NamespaceElement'","api/toc.yml",212,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.NamespaceElementCollection'","api/toc.yml",214,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.OptionalElement'","api/toc.yml",216,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterElement'","api/toc.yml",218,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterElementCollection'","api/toc.yml",220,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterValueElementCollection'","api/toc.yml",222,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.PropertyElement'","api/toc.yml",224,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.RegisterElement'","api/toc.yml",226,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.RegisterElementCollection'","api/toc.yml",228,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.SectionExtensionElement'","api/toc.yml",230,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.SectionExtensionElementCollection'","api/toc.yml",232,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.UnityConfigurationSection'","api/toc.yml",234,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.UnityContainerExtensions'","api/toc.yml",236,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ValueElement'","api/toc.yml",238,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions'","api/toc.yml",240,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.ContainerConfiguringElement'","api/toc.yml",243,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElement'","api/toc.yml",245,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElementCollection`1'","api/toc.yml",247,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElementCollectionBase`1'","api/toc.yml",250,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.InjectionMemberElement'","api/toc.yml",253,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.IValueProvidingElement'","api/toc.yml",255,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.NamedElement'","api/toc.yml",257,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.ParameterValueElement'","api/toc.yml",259,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.RegistrationElement'","api/toc.yml",261,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.SectionExtension'","api/toc.yml",263,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.SectionExtensionContext'","api/toc.yml",265,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Collections'","api/toc.yml",267,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Collections.RegistrationElementCollection'","api/toc.yml",270,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers'","api/toc.yml",272,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.TypeResolver'","api/toc.yml",275,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.TypeResolverImpl'","api/toc.yml",277,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.ValueElementHelper'","api/toc.yml",279,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions'","api/toc.yml",281,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.ConfigurationElementExtensions'","api/toc.yml",284,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.DictionaryExtensions'","api/toc.yml",286,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.XmlWriterExtensions'","api/toc.yml",288,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Storage'","api/toc.yml",290,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Storage.ElementHandlerMap`1'","api/toc.yml",293,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Events'","api/toc.yml",296,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Events.ChildContainerCreatedEventArgs'","api/toc.yml",299,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Events.NamedEventArgs'","api/toc.yml",301,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Events.RegisterEventArgs'","api/toc.yml",303,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Events.RegisterInstanceEventArgs'","api/toc.yml",305,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions'","api/toc.yml",307,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions.DependencyMissingException'","api/toc.yml",310,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions.IllegalInjectionMethodException'","api/toc.yml",312,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Extension'","api/toc.yml",314,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Extension.IExtensionContext'","api/toc.yml",317,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Extension.IUnityContainerExtensionConfigurator'","api/toc.yml",319,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Extension.Legacy'","api/toc.yml",321,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Extension.UnityContainerExtension'","api/toc.yml",323,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Factories'","api/toc.yml",325,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Factories.EnumerableResolver'","api/toc.yml",328,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","api/toc.yml",330,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericBase'","api/toc.yml",333,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericParameter'","api/toc.yml",335,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericResolvedArrayParameter'","api/toc.yml",337,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.Injection_ParameterValue'","api/toc.yml",339,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","api/toc.yml",341,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionField'","api/toc.yml",343,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMatching'","api/toc.yml",345,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","api/toc.yml",347,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember`2'","api/toc.yml",349,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMethod'","api/toc.yml",352,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionParameter'","api/toc.yml",354,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionParameter`1'","api/toc.yml",356,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionProperty'","api/toc.yml",359,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.MemberInfoBase`1'","api/toc.yml",361,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.MethodBase`1'","api/toc.yml",364,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalGenericParameter'","api/toc.yml",367,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalParameter'","api/toc.yml",369,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalParameter`1'","api/toc.yml",371,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ParameterBase'","api/toc.yml",374,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ParameterValue'","api/toc.yml",376,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedArrayParameter'","api/toc.yml",378,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedArrayParameter`1'","api/toc.yml",380,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","api/toc.yml",383,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter`1'","api/toc.yml",385,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.Typed_InjectionValue'","api/toc.yml",388,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","api/toc.yml",390,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","api/toc.yml",393,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","api/toc.yml",395,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","api/toc.yml",397,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","api/toc.yml",399,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.IFactoryLifetimeManager'","api/toc.yml",401,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.IInstanceLifetimeManager'","api/toc.yml",403,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ILifetimeContainer'","api/toc.yml",405,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ITypeLifetimeManager'","api/toc.yml",407,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeContainer'","api/toc.yml",409,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeManager'","api/toc.yml",411,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeManager.InvalidValue'","api/toc.yml",413,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","api/toc.yml",415,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","api/toc.yml",417,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","api/toc.yml",419,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SynchronizedLifetimeManager'","api/toc.yml",421,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","api/toc.yml",423,10] +["warning","xref-not-found","Cross reference not found: 'Unity.ObjectBuilder.BuildPlan.DynamicMethod'","api/toc.yml",425,8] +["warning","xref-not-found","Cross reference not found: 'Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicBuildPlanGenerationContext'","api/toc.yml",428,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy'","api/toc.yml",430,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.DefaultPolicies'","api/toc.yml",433,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IBuildPlanCreatorPolicy'","api/toc.yml",435,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IBuildPlanPolicy'","api/toc.yml",437,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IPolicyList'","api/toc.yml",439,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IPolicySet'","api/toc.yml",441,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IResolveDelegateFactory'","api/toc.yml",443,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.PolicySetExtensions'","api/toc.yml",445,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.ResolveDelegateFactory'","api/toc.yml",447,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors'","api/toc.yml",449,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ConstructorDiagnostic'","api/toc.yml",452,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ConstructorProcessor'","api/toc.yml",454,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.FieldDiagnostic'","api/toc.yml",456,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.FieldProcessor'","api/toc.yml",458,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MemberProcessor'","api/toc.yml",460,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MemberProcessor`2'","api/toc.yml",462,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MethodDiagnostic'","api/toc.yml",465,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MethodProcessor'","api/toc.yml",467,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ParametersProcessor`1'","api/toc.yml",469,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.PropertyDiagnostic'","api/toc.yml",472,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.PropertyProcessor'","api/toc.yml",474,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Registration'","api/toc.yml",476,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Registration.ContainerRegistration'","api/toc.yml",479,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Registration.InternalRegistration'","api/toc.yml",481,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution'","api/toc.yml",483,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","api/toc.yml",486,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride`1'","api/toc.yml",488,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.FieldOverride'","api/toc.yml",491,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolve'","api/toc.yml",493,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolveContext'","api/toc.yml",495,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolverFactory`1'","api/toc.yml",497,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.NamedType'","api/toc.yml",500,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ParameterOverride'","api/toc.yml",502,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ParameterOverrides'","api/toc.yml",504,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.PropertyOverride'","api/toc.yml",506,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolveDelegate`1'","api/toc.yml",508,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolverFactory`1'","api/toc.yml",511,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolverOverride'","api/toc.yml",514,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.TypeBasedOverride'","api/toc.yml",516,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.TypeBasedOverride`1'","api/toc.yml",518,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Selection'","api/toc.yml",521,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Selection.ConstructorSelection'","api/toc.yml",524,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Selection.SelectionStage'","api/toc.yml",526,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Selection.SelectorDelegate`3'","api/toc.yml",528,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage'","api/toc.yml",531,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.IRegistry`2'","api/toc.yml",534,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.IStagedStrategyChain`2'","api/toc.yml",537,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.LinkedNode`2'","api/toc.yml",540,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicyEntry'","api/toc.yml",543,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicyList'","api/toc.yml",545,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet'","api/toc.yml",547,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet.Policy'","api/toc.yml",549,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet.PolicySetDebugProxy'","api/toc.yml",551,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.QuickSet`1'","api/toc.yml",553,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.RegistrationSet'","api/toc.yml",556,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.RegistrationSet.Entry'","api/toc.yml",558,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.StagedStrategyChain`2'","api/toc.yml",560,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.StagedStrategyChainExtensions'","api/toc.yml",563,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies'","api/toc.yml",565,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.ArrayResolveStrategy'","api/toc.yml",568,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuilderStrategy'","api/toc.yml",570,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuildKeyMappingStrategy'","api/toc.yml",572,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuildPlanStrategy'","api/toc.yml",574,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.LifetimeStrategy'","api/toc.yml",576,10] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] +["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] +["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] +["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] +["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] +["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ConfigurationElementExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ParameterOverrides.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.Injection_ParameterValue.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DiagnosticExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMatching.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.ExecutePlanDelegate.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.ConstructorSelection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.UnknownElementHandlerMap-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.IRegistry-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.SelectionStage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuilderStrategy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Storage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.SectionExtension.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.LifetimeStrategy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolver.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ForceActivation.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.ResolvePlanDelegate.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.PolicySetExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.IUnityContainerExtensionConfigurator.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Factories.EnumerableResolver.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicBuildPlanGenerationContext.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.ResolveDelegateFactory.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.ConfigurationElementExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.TypeLifetime.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolveDelegate-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Factories.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ObjectBuilder.BuildPlan.DynamicMethod.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.IValueProvidingElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedArrayParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.TypeResolver.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericBase.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.ContainerRegistration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuildKeyMappingStrategy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.NamedType.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.Legacy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.DictionaryExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IContainerRegistration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DefaultLifetime.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Invoke.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolve.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ExtensionExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.SelectorDelegate-3.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.SectionExtensionContext.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IResolveDelegateFactory.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.IInstanceLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.UnityBuildStage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.DependencyOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.UnityContainerExtension.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.Policy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.NamedEventArgs.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ParameterValue.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.ChildContainerCreatedEventArgs.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ITypeLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.LinkedNode-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalParameter-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ExtensionElementMap.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.TypeResolverImpl.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuildPlanStrategy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderStage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ParameterBase.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.Typed_InjectionValue.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.DependencyMissingException.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.TransientLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.QuickSet-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ValueElementHelper.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.RegistrationSet.Entry.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.DefaultPolicies.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalGenericParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.SupportedMembers.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericResolvedArrayParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.ArrayResolveStrategy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MemberProcessor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.DependencyOverride-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.DictionaryExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.RegistrationSet.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicyList.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolverImpl.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.IFactoryLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedParameter-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ExternallyControlledLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.ValueElementHelper.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ContainerControlledLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.TypeBasedOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.FieldDiagnostic.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.IExtensionContext.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.PerThreadLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Diagnostic.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.FieldProcessor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeContainer.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.IllegalInjectionMethodException.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamespaceElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolverOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Storage.ElementHandlerMap-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedArrayParameter-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.NamedElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.StagedStrategyChain-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AssemblyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.XmlWriterExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MemberProcessor-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.SingletonLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ParametersProcessor-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConstructorElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamedElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.FactoryLifetime.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainer.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.TypeBasedOverride-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.UnityContainerExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConstructorElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerExtensionElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolveContext.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionField.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.PropertyDiagnostic.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.SectionExtensionElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.LifetimeElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.NamedTypeBuildKey-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.MethodBase-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.PropertyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerExtensionElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.RegistrationElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.PropertyProcessor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.FieldOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ContainerControlledTransientManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ForceCompillation.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMethod.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.IStagedStrategyChain-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Override.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ArrayElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ILifetimeContainer.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.ContainerConfiguringElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.InjectionMemberElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InjectionConstructorAttribute.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DependencyAttribute.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.HierarchicalLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicyEntry.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMember.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InstanceElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.OptionalElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AliasElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ConstructorProcessor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.DependencyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElementCollectionBase-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.NamespaceElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolverFactory-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.DependencyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerConfiguringElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ValueElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.OptionalDependencyAttribute.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Collections.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.ParameterValueElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IBuildPlanCreatorPolicy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.PropertyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IPolicyList.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.MethodElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AliasElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MethodProcessor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainerAsyncExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AssemblyElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IBuildPlanPolicy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeManager.InvalidValue.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ConstructorDiagnostic.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Collections.RegistrationElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.XmlWriterExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.SectionExtensionElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.MemberSelector-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Inject.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterValueElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionParameter-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MethodDiagnostic.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.UnityContainerExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerExtensionElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ArrayElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.PolicySetDebugProxy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.SelectionStage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.RegisterElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.PropertyOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.IDefaultPolicy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterValueElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolve.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElementCollection-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerExtensionElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.RegisterInstanceEventArgs.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.UnityConfigurationSection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.RegisterEventArgs.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InstanceLifetime.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.NamespaceElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.SectionExtensionElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.StagedStrategyChainExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.RegisterElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.InternalRegistration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMember-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.PerResolveLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerConfiguringElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AliasElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.NamedTypeBuildKey.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ResolutionFailedException.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.LifetimeElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ParameterOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.SynchronizedLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.MemberInfoBase-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InjectionMemberElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.RegisterElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionConstructor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.MethodElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.FieldElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AssemblyElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InstanceElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.SectionExtensionElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InjectionMethodAttribute.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionProperty.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DependencyResolutionAttribute.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ValueElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.OptionalElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InstanceElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainerExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamespaceElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.RegisterElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AssemblyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InjectionMemberElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InstanceElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AliasElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IUnityContainerAsync.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IPolicySet.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IUnityContainer.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolverFactory-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.UnityConfigurationSection.yml",1,1] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration'","api/toc.yml",2,8] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AliasElement'","api/toc.yml",5,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AliasElementCollection'","api/toc.yml",7,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ArrayElement'","api/toc.yml",9,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AssemblyElement'","api/toc.yml",11,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AssemblyElementCollection'","api/toc.yml",13,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConstructorElement'","api/toc.yml",15,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerConfiguringElementCollection'","api/toc.yml",17,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerElement'","api/toc.yml",19,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerElementCollection'","api/toc.yml",21,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerExtensionElement'","api/toc.yml",23,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerExtensionElementCollection'","api/toc.yml",25,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.DependencyElement'","api/toc.yml",27,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElement'","api/toc.yml",29,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InjectionMemberElementCollection'","api/toc.yml",33,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElementCollection'","api/toc.yml",31,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InstanceElement'","api/toc.yml",35,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InstanceElementCollection'","api/toc.yml",37,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.LifetimeElement'","api/toc.yml",39,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.MethodElement'","api/toc.yml",41,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamedElement'","api/toc.yml",43,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamespaceElement'","api/toc.yml",45,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamespaceElementCollection'","api/toc.yml",47,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.OptionalElement'","api/toc.yml",49,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterElement'","api/toc.yml",51,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterElementCollection'","api/toc.yml",53,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterValueElementCollection'","api/toc.yml",55,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.PropertyElement'","api/toc.yml",57,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.RegisterElement'","api/toc.yml",59,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.RegisterElementCollection'","api/toc.yml",61,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.SectionExtensionElement'","api/toc.yml",63,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.SectionExtensionElementCollection'","api/toc.yml",65,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.UnityConfigurationSection'","api/toc.yml",67,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.UnityContainerExtensions'","api/toc.yml",69,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ValueElement'","api/toc.yml",71,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers'","api/toc.yml",73,8] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ConfigurationElementExtensions'","api/toc.yml",76,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.DictionaryExtensions'","api/toc.yml",78,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolver'","api/toc.yml",80,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolverImpl'","api/toc.yml",82,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.UnknownElementHandlerMap`1'","api/toc.yml",84,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ValueElementHelper'","api/toc.yml",87,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.XmlWriterExtensions'","api/toc.yml",89,10] +["warning","xref-not-found","Cross reference not found: 'Unity'","api/toc.yml",91,8] +["warning","xref-not-found","Cross reference not found: 'Unity.DefaultLifetime'","api/toc.yml",94,10] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","api/toc.yml",96,10] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyResolutionAttribute'","api/toc.yml",98,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Diagnostic'","api/toc.yml",100,10] +["warning","xref-not-found","Cross reference not found: 'Unity.DiagnosticExtensions'","api/toc.yml",102,10] +["warning","xref-not-found","Cross reference not found: 'Unity.ExtensionExtensions'","api/toc.yml",104,10] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","api/toc.yml",106,10] +["warning","xref-not-found","Cross reference not found: 'Unity.ForceActivation'","api/toc.yml",108,10] +["warning","xref-not-found","Cross reference not found: 'Unity.ForceCompillation'","api/toc.yml",110,10] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","api/toc.yml",112,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Inject'","api/toc.yml",114,10] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","api/toc.yml",116,10] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","api/toc.yml",118,10] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","api/toc.yml",120,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","api/toc.yml",122,10] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","api/toc.yml",124,10] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainerAsync'","api/toc.yml",126,10] +["warning","xref-not-found","Cross reference not found: 'Unity.MemberSelector`2'","api/toc.yml",128,10] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","api/toc.yml",131,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Override'","api/toc.yml",133,10] +["warning","xref-not-found","Cross reference not found: 'Unity.ResolutionFailedException'","api/toc.yml",135,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolve'","api/toc.yml",137,10] +["warning","xref-not-found","Cross reference not found: 'Unity.SupportedMembers'","api/toc.yml",139,10] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","api/toc.yml",141,10] +["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainer'","api/toc.yml",143,10] +["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainerAsyncExtensions'","api/toc.yml",145,10] +["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainerExtensions'","api/toc.yml",147,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder'","api/toc.yml",149,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext'","api/toc.yml",152,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext.ExecutePlanDelegate'","api/toc.yml",154,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext.ResolvePlanDelegate'","api/toc.yml",156,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderStage'","api/toc.yml",158,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.NamedTypeBuildKey'","api/toc.yml",160,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.NamedTypeBuildKey`1'","api/toc.yml",162,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.SelectionStage'","api/toc.yml",165,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.UnityBuildStage'","api/toc.yml",167,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration'","api/toc.yml",169,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AliasElement'","api/toc.yml",172,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AliasElementCollection'","api/toc.yml",174,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ArrayElement'","api/toc.yml",176,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AssemblyElement'","api/toc.yml",178,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AssemblyElementCollection'","api/toc.yml",180,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConstructorElement'","api/toc.yml",182,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerConfiguringElementCollection'","api/toc.yml",184,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerElement'","api/toc.yml",186,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerElementCollection'","api/toc.yml",188,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerExtensionElement'","api/toc.yml",190,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerExtensionElementCollection'","api/toc.yml",192,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.DependencyElement'","api/toc.yml",194,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ExtensionElementMap'","api/toc.yml",196,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.FieldElement'","api/toc.yml",198,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.IDefaultPolicy'","api/toc.yml",200,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InjectionMemberElementCollection'","api/toc.yml",202,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InstanceElement'","api/toc.yml",204,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InstanceElementCollection'","api/toc.yml",206,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.LifetimeElement'","api/toc.yml",208,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.MethodElement'","api/toc.yml",210,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.NamespaceElement'","api/toc.yml",212,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.NamespaceElementCollection'","api/toc.yml",214,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.OptionalElement'","api/toc.yml",216,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterElement'","api/toc.yml",218,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterElementCollection'","api/toc.yml",220,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterValueElementCollection'","api/toc.yml",222,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.PropertyElement'","api/toc.yml",224,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.RegisterElement'","api/toc.yml",226,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.RegisterElementCollection'","api/toc.yml",228,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.SectionExtensionElement'","api/toc.yml",230,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.SectionExtensionElementCollection'","api/toc.yml",232,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.UnityConfigurationSection'","api/toc.yml",234,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.UnityContainerExtensions'","api/toc.yml",236,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ValueElement'","api/toc.yml",238,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions'","api/toc.yml",240,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.ContainerConfiguringElement'","api/toc.yml",243,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElement'","api/toc.yml",245,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElementCollection`1'","api/toc.yml",247,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElementCollectionBase`1'","api/toc.yml",250,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.InjectionMemberElement'","api/toc.yml",253,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.IValueProvidingElement'","api/toc.yml",255,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.NamedElement'","api/toc.yml",257,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.ParameterValueElement'","api/toc.yml",259,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.RegistrationElement'","api/toc.yml",261,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.SectionExtension'","api/toc.yml",263,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.SectionExtensionContext'","api/toc.yml",265,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Collections'","api/toc.yml",267,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Collections.RegistrationElementCollection'","api/toc.yml",270,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers'","api/toc.yml",272,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.TypeResolver'","api/toc.yml",275,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.TypeResolverImpl'","api/toc.yml",277,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.ValueElementHelper'","api/toc.yml",279,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions'","api/toc.yml",281,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.ConfigurationElementExtensions'","api/toc.yml",284,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.DictionaryExtensions'","api/toc.yml",286,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.XmlWriterExtensions'","api/toc.yml",288,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Storage'","api/toc.yml",290,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Storage.ElementHandlerMap`1'","api/toc.yml",293,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Events'","api/toc.yml",296,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Events.ChildContainerCreatedEventArgs'","api/toc.yml",299,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Events.NamedEventArgs'","api/toc.yml",301,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Events.RegisterEventArgs'","api/toc.yml",303,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Events.RegisterInstanceEventArgs'","api/toc.yml",305,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions'","api/toc.yml",307,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions.DependencyMissingException'","api/toc.yml",310,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions.IllegalInjectionMethodException'","api/toc.yml",312,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Extension'","api/toc.yml",314,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Extension.IExtensionContext'","api/toc.yml",317,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Extension.IUnityContainerExtensionConfigurator'","api/toc.yml",319,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Extension.Legacy'","api/toc.yml",321,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Extension.UnityContainerExtension'","api/toc.yml",323,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Factories'","api/toc.yml",325,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Factories.EnumerableResolver'","api/toc.yml",328,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","api/toc.yml",330,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericBase'","api/toc.yml",333,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericParameter'","api/toc.yml",335,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericResolvedArrayParameter'","api/toc.yml",337,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.Injection_ParameterValue'","api/toc.yml",339,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","api/toc.yml",341,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionField'","api/toc.yml",343,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMatching'","api/toc.yml",345,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","api/toc.yml",347,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember`2'","api/toc.yml",349,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMethod'","api/toc.yml",352,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionParameter'","api/toc.yml",354,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionParameter`1'","api/toc.yml",356,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionProperty'","api/toc.yml",359,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.MemberInfoBase`1'","api/toc.yml",361,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.MethodBase`1'","api/toc.yml",364,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalGenericParameter'","api/toc.yml",367,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalParameter'","api/toc.yml",369,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalParameter`1'","api/toc.yml",371,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ParameterBase'","api/toc.yml",374,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ParameterValue'","api/toc.yml",376,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedArrayParameter'","api/toc.yml",378,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedArrayParameter`1'","api/toc.yml",380,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","api/toc.yml",383,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter`1'","api/toc.yml",385,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.Typed_InjectionValue'","api/toc.yml",388,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","api/toc.yml",390,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","api/toc.yml",393,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","api/toc.yml",395,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","api/toc.yml",397,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","api/toc.yml",399,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.IFactoryLifetimeManager'","api/toc.yml",401,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.IInstanceLifetimeManager'","api/toc.yml",403,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ILifetimeContainer'","api/toc.yml",405,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ITypeLifetimeManager'","api/toc.yml",407,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeContainer'","api/toc.yml",409,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeManager'","api/toc.yml",411,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeManager.InvalidValue'","api/toc.yml",413,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","api/toc.yml",415,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","api/toc.yml",417,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","api/toc.yml",419,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SynchronizedLifetimeManager'","api/toc.yml",421,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","api/toc.yml",423,10] +["warning","xref-not-found","Cross reference not found: 'Unity.ObjectBuilder.BuildPlan.DynamicMethod'","api/toc.yml",425,8] +["warning","xref-not-found","Cross reference not found: 'Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicBuildPlanGenerationContext'","api/toc.yml",428,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy'","api/toc.yml",430,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.DefaultPolicies'","api/toc.yml",433,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IBuildPlanCreatorPolicy'","api/toc.yml",435,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IBuildPlanPolicy'","api/toc.yml",437,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IPolicyList'","api/toc.yml",439,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IPolicySet'","api/toc.yml",441,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IResolveDelegateFactory'","api/toc.yml",443,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.PolicySetExtensions'","api/toc.yml",445,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.ResolveDelegateFactory'","api/toc.yml",447,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors'","api/toc.yml",449,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ConstructorDiagnostic'","api/toc.yml",452,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ConstructorProcessor'","api/toc.yml",454,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.FieldDiagnostic'","api/toc.yml",456,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.FieldProcessor'","api/toc.yml",458,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MemberProcessor'","api/toc.yml",460,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MemberProcessor`2'","api/toc.yml",462,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MethodDiagnostic'","api/toc.yml",465,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MethodProcessor'","api/toc.yml",467,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ParametersProcessor`1'","api/toc.yml",469,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.PropertyDiagnostic'","api/toc.yml",472,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.PropertyProcessor'","api/toc.yml",474,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Registration'","api/toc.yml",476,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Registration.ContainerRegistration'","api/toc.yml",479,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Registration.InternalRegistration'","api/toc.yml",481,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution'","api/toc.yml",483,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","api/toc.yml",486,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride`1'","api/toc.yml",488,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.FieldOverride'","api/toc.yml",491,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolve'","api/toc.yml",493,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolveContext'","api/toc.yml",495,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolverFactory`1'","api/toc.yml",497,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.NamedType'","api/toc.yml",500,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ParameterOverride'","api/toc.yml",502,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ParameterOverrides'","api/toc.yml",504,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.PropertyOverride'","api/toc.yml",506,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolveDelegate`1'","api/toc.yml",508,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolverFactory`1'","api/toc.yml",511,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolverOverride'","api/toc.yml",514,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.TypeBasedOverride'","api/toc.yml",516,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.TypeBasedOverride`1'","api/toc.yml",518,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Selection'","api/toc.yml",521,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Selection.ConstructorSelection'","api/toc.yml",524,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Selection.SelectionStage'","api/toc.yml",526,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Selection.SelectorDelegate`3'","api/toc.yml",528,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage'","api/toc.yml",531,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.IRegistry`2'","api/toc.yml",534,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.IStagedStrategyChain`2'","api/toc.yml",537,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.LinkedNode`2'","api/toc.yml",540,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicyEntry'","api/toc.yml",543,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicyList'","api/toc.yml",545,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet'","api/toc.yml",547,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet.Policy'","api/toc.yml",549,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet.PolicySetDebugProxy'","api/toc.yml",551,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.QuickSet`1'","api/toc.yml",553,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.RegistrationSet'","api/toc.yml",556,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.RegistrationSet.Entry'","api/toc.yml",558,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.StagedStrategyChain`2'","api/toc.yml",560,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.StagedStrategyChainExtensions'","api/toc.yml",563,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies'","api/toc.yml",565,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.ArrayResolveStrategy'","api/toc.yml",568,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuilderStrategy'","api/toc.yml",570,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuildKeyMappingStrategy'","api/toc.yml",572,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuildPlanStrategy'","api/toc.yml",574,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.LifetimeStrategy'","api/toc.yml",576,10] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] +["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] +["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] +["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] +["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] +["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.SelectionStage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.DefaultPolicies.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.RegisterInstanceEventArgs.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.UnityContainerExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.MemberSelector-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.IFactoryLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.IInstanceLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IBuildPlanPolicy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicyEntry.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.Typed_InjectionValue.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IResolveDelegateFactory.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedParameter-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.DependencyOverride-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.LinkedNode-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.DictionaryExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderStage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.IRegistry-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Invoke.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.ArrayResolveStrategy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.UnityBuildStage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolveContext.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Inject.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.TypeLifetime.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.SelectionStage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.IDefaultPolicy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ExtensionElementMap.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.IllegalInjectionMethodException.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.IValueProvidingElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolverImpl.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.ContainerRegistration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.MemberInfoBase-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.ConfigurationElementExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.FactoryLifetime.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.TransientLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolveDelegate-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MemberProcessor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.Policy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Override.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericResolvedArrayParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.NamedTypeBuildKey.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IPolicySet.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Storage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.DependencyOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.PerThreadLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuilderStrategy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IPolicyList.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolve.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ObjectBuilder.BuildPlan.DynamicMethod.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IContainerRegistration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IBuildPlanCreatorPolicy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Diagnostic.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.PolicySetDebugProxy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.QuickSet-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.DependencyMissingException.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.NamedTypeBuildKey-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.PerResolveLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ConfigurationElementExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.SelectorDelegate-3.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeContainer.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.UnityContainerExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ParameterOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.SectionExtension.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.SupportedMembers.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolve.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.PropertyOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ExternallyControlledLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ExtensionExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMatching.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.SynchronizedLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.RegistrationSet.Entry.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.InternalRegistration.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ITypeLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Collections.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicBuildPlanGenerationContext.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.SectionExtensionContext.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DiagnosticExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.DictionaryExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuildKeyMappingStrategy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.Legacy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.ValueElementHelper.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.TypeBasedOverride-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Factories.EnumerableResolver.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolverFactory-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.ChildContainerCreatedEventArgs.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.TypeResolverImpl.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ResolutionFailedException.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.UnityContainerExtension.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.IUnityContainerExtensionConfigurator.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ForceCompillation.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DefaultLifetime.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ParameterBase.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.TypeBasedOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MemberProcessor-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ParameterOverrides.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.MethodBase-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMember-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.RegistrationElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicyList.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AssemblyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ParametersProcessor-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMethod.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.PropertyProcessor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionConstructor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.FieldProcessor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.NamedElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolverFactory-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.PropertyDiagnostic.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionField.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ContainerControlledTransientManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.FieldDiagnostic.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConstructorElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainer.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConstructorElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionProperty.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AliasElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InstanceElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMember.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericBase.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.ParameterValueElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AssemblyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.ContainerConfiguringElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerExtensionElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.FieldOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ArrayElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AliasElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.MethodElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.RegisterElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.LifetimeElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InstanceElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.SectionExtensionElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerExtensionElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.LifetimeElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.TypeResolver.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.PropertyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.SectionExtensionElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.RegisterEventArgs.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DependencyAttribute.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.Injection_ParameterValue.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionParameter-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.ExecutePlanDelegate.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ValueElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Storage.ElementHandlerMap-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolverOverride.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DependencyResolutionAttribute.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.PropertyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.ResolveDelegateFactory.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ArrayElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Collections.RegistrationElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.ConstructorSelection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainerAsyncExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterValueElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ContainerControlledLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MethodProcessor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ConstructorProcessor.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainerExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.XmlWriterExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuildPlanStrategy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ILifetimeContainer.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.XmlWriterExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.IStagedStrategyChain-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.MethodElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElementCollectionBase-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerConfiguringElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.ResolvePlanDelegate.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InstanceLifetime.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ConstructorDiagnostic.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.NamedEventArgs.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InstanceElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.UnknownElementHandlerMap-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolver.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerExtensionElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ParameterValue.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedArrayParameter-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.StagedStrategyChainExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AssemblyElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerExtensionElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InjectionConstructorAttribute.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.SectionExtensionElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamespaceElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.OptionalDependencyAttribute.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.NamespaceElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.UnityConfigurationSection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.RegisterElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ForceActivation.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.IExtensionContext.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElementCollection-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeManager.InvalidValue.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.RegisterElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.DependencyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ValueElementHelper.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InjectionMemberElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerConfiguringElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalParameter-1.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.LifetimeStrategy.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.NamedType.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.StagedStrategyChain-2.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalGenericParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedArrayParameter.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AliasElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamespaceElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.HierarchicalLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.RegisterElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamedElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.DependencyElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InjectionMemberElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.FieldElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MethodDiagnostic.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.NamespaceElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterValueElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Factories.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.OptionalElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InjectionMethodAttribute.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.InjectionMemberElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.OptionalElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.UnityConfigurationSection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ValueElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AliasElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InstanceElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AssemblyElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.SectionExtensionElementCollection.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.RegistrationSet.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElement.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.PolicySetExtensions.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IUnityContainer.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IUnityContainerAsync.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.SingletonLifetimeManager.yml",1,1] +["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerElement.yml",1,1] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration'","api/toc.yml",2,8] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AliasElement'","api/toc.yml",5,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AliasElementCollection'","api/toc.yml",7,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ArrayElement'","api/toc.yml",9,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AssemblyElement'","api/toc.yml",11,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AssemblyElementCollection'","api/toc.yml",13,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConstructorElement'","api/toc.yml",15,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerConfiguringElementCollection'","api/toc.yml",17,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerElement'","api/toc.yml",19,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerElementCollection'","api/toc.yml",21,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerExtensionElement'","api/toc.yml",23,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerExtensionElementCollection'","api/toc.yml",25,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.DependencyElement'","api/toc.yml",27,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElement'","api/toc.yml",29,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElementCollection'","api/toc.yml",31,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InjectionMemberElementCollection'","api/toc.yml",33,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InstanceElement'","api/toc.yml",35,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InstanceElementCollection'","api/toc.yml",37,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.LifetimeElement'","api/toc.yml",39,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.MethodElement'","api/toc.yml",41,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamedElement'","api/toc.yml",43,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamespaceElement'","api/toc.yml",45,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamespaceElementCollection'","api/toc.yml",47,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.OptionalElement'","api/toc.yml",49,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterElement'","api/toc.yml",51,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterElementCollection'","api/toc.yml",53,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterValueElementCollection'","api/toc.yml",55,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.PropertyElement'","api/toc.yml",57,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.RegisterElement'","api/toc.yml",59,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.RegisterElementCollection'","api/toc.yml",61,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.SectionExtensionElement'","api/toc.yml",63,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.SectionExtensionElementCollection'","api/toc.yml",65,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.UnityConfigurationSection'","api/toc.yml",67,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.UnityContainerExtensions'","api/toc.yml",69,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ValueElement'","api/toc.yml",71,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers'","api/toc.yml",73,8] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ConfigurationElementExtensions'","api/toc.yml",76,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.DictionaryExtensions'","api/toc.yml",78,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolver'","api/toc.yml",80,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolverImpl'","api/toc.yml",82,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.UnknownElementHandlerMap`1'","api/toc.yml",84,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ValueElementHelper'","api/toc.yml",87,10] +["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.XmlWriterExtensions'","api/toc.yml",89,10] +["warning","xref-not-found","Cross reference not found: 'Unity'","api/toc.yml",91,8] +["warning","xref-not-found","Cross reference not found: 'Unity.DefaultLifetime'","api/toc.yml",94,10] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","api/toc.yml",96,10] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyResolutionAttribute'","api/toc.yml",98,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Diagnostic'","api/toc.yml",100,10] +["warning","xref-not-found","Cross reference not found: 'Unity.DiagnosticExtensions'","api/toc.yml",102,10] +["warning","xref-not-found","Cross reference not found: 'Unity.ExtensionExtensions'","api/toc.yml",104,10] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","api/toc.yml",106,10] +["warning","xref-not-found","Cross reference not found: 'Unity.ForceActivation'","api/toc.yml",108,10] +["warning","xref-not-found","Cross reference not found: 'Unity.ForceCompillation'","api/toc.yml",110,10] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","api/toc.yml",112,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Inject'","api/toc.yml",114,10] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","api/toc.yml",116,10] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","api/toc.yml",118,10] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","api/toc.yml",120,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","api/toc.yml",122,10] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","api/toc.yml",124,10] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainerAsync'","api/toc.yml",126,10] +["warning","xref-not-found","Cross reference not found: 'Unity.MemberSelector`2'","api/toc.yml",128,10] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","api/toc.yml",131,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Override'","api/toc.yml",133,10] +["warning","xref-not-found","Cross reference not found: 'Unity.ResolutionFailedException'","api/toc.yml",135,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolve'","api/toc.yml",137,10] +["warning","xref-not-found","Cross reference not found: 'Unity.SupportedMembers'","api/toc.yml",139,10] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","api/toc.yml",141,10] +["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainer'","api/toc.yml",143,10] +["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainerAsyncExtensions'","api/toc.yml",145,10] +["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainerExtensions'","api/toc.yml",147,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder'","api/toc.yml",149,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext'","api/toc.yml",152,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext.ExecutePlanDelegate'","api/toc.yml",154,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext.ResolvePlanDelegate'","api/toc.yml",156,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderStage'","api/toc.yml",158,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.NamedTypeBuildKey'","api/toc.yml",160,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.NamedTypeBuildKey`1'","api/toc.yml",162,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.SelectionStage'","api/toc.yml",165,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Builder.UnityBuildStage'","api/toc.yml",167,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration'","api/toc.yml",169,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AliasElement'","api/toc.yml",172,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AliasElementCollection'","api/toc.yml",174,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ArrayElement'","api/toc.yml",176,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AssemblyElement'","api/toc.yml",178,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AssemblyElementCollection'","api/toc.yml",180,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConstructorElement'","api/toc.yml",182,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerConfiguringElementCollection'","api/toc.yml",184,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerElement'","api/toc.yml",186,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerElementCollection'","api/toc.yml",188,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerExtensionElement'","api/toc.yml",190,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerExtensionElementCollection'","api/toc.yml",192,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.DependencyElement'","api/toc.yml",194,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ExtensionElementMap'","api/toc.yml",196,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.FieldElement'","api/toc.yml",198,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.IDefaultPolicy'","api/toc.yml",200,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InjectionMemberElementCollection'","api/toc.yml",202,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InstanceElement'","api/toc.yml",204,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InstanceElementCollection'","api/toc.yml",206,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.LifetimeElement'","api/toc.yml",208,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.MethodElement'","api/toc.yml",210,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.NamespaceElement'","api/toc.yml",212,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.NamespaceElementCollection'","api/toc.yml",214,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.OptionalElement'","api/toc.yml",216,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterElement'","api/toc.yml",218,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterElementCollection'","api/toc.yml",220,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterValueElementCollection'","api/toc.yml",222,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.PropertyElement'","api/toc.yml",224,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.RegisterElement'","api/toc.yml",226,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.RegisterElementCollection'","api/toc.yml",228,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.SectionExtensionElement'","api/toc.yml",230,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.SectionExtensionElementCollection'","api/toc.yml",232,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.UnityConfigurationSection'","api/toc.yml",234,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.UnityContainerExtensions'","api/toc.yml",236,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ValueElement'","api/toc.yml",238,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions'","api/toc.yml",240,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.ContainerConfiguringElement'","api/toc.yml",243,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElement'","api/toc.yml",245,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElementCollection`1'","api/toc.yml",247,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElementCollectionBase`1'","api/toc.yml",250,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.InjectionMemberElement'","api/toc.yml",253,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.IValueProvidingElement'","api/toc.yml",255,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.NamedElement'","api/toc.yml",257,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.ParameterValueElement'","api/toc.yml",259,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.RegistrationElement'","api/toc.yml",261,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.SectionExtension'","api/toc.yml",263,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.SectionExtensionContext'","api/toc.yml",265,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Collections'","api/toc.yml",267,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Collections.RegistrationElementCollection'","api/toc.yml",270,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers'","api/toc.yml",272,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.TypeResolver'","api/toc.yml",275,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.TypeResolverImpl'","api/toc.yml",277,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.ValueElementHelper'","api/toc.yml",279,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions'","api/toc.yml",281,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.ConfigurationElementExtensions'","api/toc.yml",284,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.DictionaryExtensions'","api/toc.yml",286,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.XmlWriterExtensions'","api/toc.yml",288,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Storage'","api/toc.yml",290,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Storage.ElementHandlerMap`1'","api/toc.yml",293,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Events'","api/toc.yml",296,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Events.ChildContainerCreatedEventArgs'","api/toc.yml",299,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Events.NamedEventArgs'","api/toc.yml",301,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Events.RegisterEventArgs'","api/toc.yml",303,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Events.RegisterInstanceEventArgs'","api/toc.yml",305,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions'","api/toc.yml",307,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions.DependencyMissingException'","api/toc.yml",310,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions.IllegalInjectionMethodException'","api/toc.yml",312,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Extension'","api/toc.yml",314,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Extension.IExtensionContext'","api/toc.yml",317,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Extension.IUnityContainerExtensionConfigurator'","api/toc.yml",319,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Extension.Legacy'","api/toc.yml",321,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Extension.UnityContainerExtension'","api/toc.yml",323,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Factories'","api/toc.yml",325,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Factories.EnumerableResolver'","api/toc.yml",328,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","api/toc.yml",330,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericBase'","api/toc.yml",333,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericParameter'","api/toc.yml",335,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericResolvedArrayParameter'","api/toc.yml",337,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.Injection_ParameterValue'","api/toc.yml",339,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","api/toc.yml",341,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionField'","api/toc.yml",343,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMatching'","api/toc.yml",345,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","api/toc.yml",347,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember`2'","api/toc.yml",349,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMethod'","api/toc.yml",352,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionParameter'","api/toc.yml",354,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionParameter`1'","api/toc.yml",356,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionProperty'","api/toc.yml",359,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.MemberInfoBase`1'","api/toc.yml",361,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.MethodBase`1'","api/toc.yml",364,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalGenericParameter'","api/toc.yml",367,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalParameter'","api/toc.yml",369,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalParameter`1'","api/toc.yml",371,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ParameterBase'","api/toc.yml",374,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ParameterValue'","api/toc.yml",376,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedArrayParameter'","api/toc.yml",378,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedArrayParameter`1'","api/toc.yml",380,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","api/toc.yml",383,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter`1'","api/toc.yml",385,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.Typed_InjectionValue'","api/toc.yml",388,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","api/toc.yml",390,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","api/toc.yml",393,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","api/toc.yml",395,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","api/toc.yml",397,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","api/toc.yml",399,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.IFactoryLifetimeManager'","api/toc.yml",401,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.IInstanceLifetimeManager'","api/toc.yml",403,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ILifetimeContainer'","api/toc.yml",405,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ITypeLifetimeManager'","api/toc.yml",407,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeContainer'","api/toc.yml",409,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeManager'","api/toc.yml",411,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeManager.InvalidValue'","api/toc.yml",413,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","api/toc.yml",415,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","api/toc.yml",417,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","api/toc.yml",419,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SynchronizedLifetimeManager'","api/toc.yml",421,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","api/toc.yml",423,10] +["warning","xref-not-found","Cross reference not found: 'Unity.ObjectBuilder.BuildPlan.DynamicMethod'","api/toc.yml",425,8] +["warning","xref-not-found","Cross reference not found: 'Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicBuildPlanGenerationContext'","api/toc.yml",428,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy'","api/toc.yml",430,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.DefaultPolicies'","api/toc.yml",433,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IBuildPlanCreatorPolicy'","api/toc.yml",435,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IBuildPlanPolicy'","api/toc.yml",437,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IPolicyList'","api/toc.yml",439,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IPolicySet'","api/toc.yml",441,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IResolveDelegateFactory'","api/toc.yml",443,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.PolicySetExtensions'","api/toc.yml",445,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Policy.ResolveDelegateFactory'","api/toc.yml",447,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors'","api/toc.yml",449,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ConstructorDiagnostic'","api/toc.yml",452,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ConstructorProcessor'","api/toc.yml",454,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.FieldDiagnostic'","api/toc.yml",456,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.FieldProcessor'","api/toc.yml",458,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MemberProcessor'","api/toc.yml",460,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MemberProcessor`2'","api/toc.yml",462,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MethodDiagnostic'","api/toc.yml",465,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MethodProcessor'","api/toc.yml",467,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ParametersProcessor`1'","api/toc.yml",469,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.PropertyDiagnostic'","api/toc.yml",472,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Processors.PropertyProcessor'","api/toc.yml",474,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Registration'","api/toc.yml",476,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Registration.ContainerRegistration'","api/toc.yml",479,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Registration.InternalRegistration'","api/toc.yml",481,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution'","api/toc.yml",483,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","api/toc.yml",486,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride`1'","api/toc.yml",488,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.FieldOverride'","api/toc.yml",491,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolve'","api/toc.yml",493,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolveContext'","api/toc.yml",495,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolverFactory`1'","api/toc.yml",497,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.NamedType'","api/toc.yml",500,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ParameterOverride'","api/toc.yml",502,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ParameterOverrides'","api/toc.yml",504,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.PropertyOverride'","api/toc.yml",506,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolveDelegate`1'","api/toc.yml",508,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolverFactory`1'","api/toc.yml",511,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolverOverride'","api/toc.yml",514,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.TypeBasedOverride'","api/toc.yml",516,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.TypeBasedOverride`1'","api/toc.yml",518,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Selection'","api/toc.yml",521,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Selection.ConstructorSelection'","api/toc.yml",524,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Selection.SelectionStage'","api/toc.yml",526,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Selection.SelectorDelegate`3'","api/toc.yml",528,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage'","api/toc.yml",531,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.IRegistry`2'","api/toc.yml",534,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.IStagedStrategyChain`2'","api/toc.yml",537,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.LinkedNode`2'","api/toc.yml",540,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicyEntry'","api/toc.yml",543,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicyList'","api/toc.yml",545,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet'","api/toc.yml",547,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet.Policy'","api/toc.yml",549,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet.PolicySetDebugProxy'","api/toc.yml",551,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.QuickSet`1'","api/toc.yml",553,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.RegistrationSet'","api/toc.yml",556,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.RegistrationSet.Entry'","api/toc.yml",558,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.StagedStrategyChain`2'","api/toc.yml",560,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Storage.StagedStrategyChainExtensions'","api/toc.yml",563,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies'","api/toc.yml",565,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.ArrayResolveStrategy'","api/toc.yml",568,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuilderStrategy'","api/toc.yml",570,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuildKeyMappingStrategy'","api/toc.yml",572,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuildPlanStrategy'","api/toc.yml",574,10] +["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.LifetimeStrategy'","api/toc.yml",576,10] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] +["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] +["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] +["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] +["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] +["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] +["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] +["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] +["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] +["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] +["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] +["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] +["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] +["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] +["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] +["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] +["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] +["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] +["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] +["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] diff --git a/_site/.links.json b/_site/.links.json new file mode 100644 index 0000000..68184b8 --- /dev/null +++ b/_site/.links.json @@ -0,0 +1 @@ +{"links":[{"source_url":"/articles/changelog/","target_url":"https://github.com/quintonn"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/abstractions/issues/102"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/abstractions/issues/90"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/abstractions/issues/97"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/container/issues/35"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/examples/blob/master/src/Extending%20Unity/BuildPlan/FooBuildPlanPolicy.cs"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/examples/blob/master/src/Extending%20Unity/BuildPlan/FooUnityExtension.cs"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/examples/blob/master/src/Extending%20Unity/BuildPlanCreator/FooBuildPlanCreatorPolicy.cs"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/examples/blob/master/src/Extending%20Unity/BuildPlanCreator/FooUnityExtension.cs"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/examples/tree/master/src/Extending%20Unity"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/microsoft-logging/blob/master/src/LoggingExtension.cs"},{"source_url":"/articles/design/","target_url":"/articles/application/"},{"source_url":"/articles/design/","target_url":"https://en.wikipedia.org/wiki/Dependency_injection"},{"source_url":"/articles/design/","target_url":"https://en.wikipedia.org/wiki/Inversion_of_control"},{"source_url":"/articles/design/","target_url":"https://www.nuget.org/packages/Unity.Abstractions/"},{"source_url":"/articles/design/","target_url":"https://www.nuget.org/packages/Unity.Container/"},{"source_url":"/articles/design/","target_url":"https://www.nuget.org/packages/Unity/"},{"source_url":"/articles/design/","target_url":"https://www.nuget.org/packages?q=unitycontainer"},{"source_url":"/articles/history/","target_url":"https://archive.codeplex.com/?p=unity"},{"source_url":"/articles/history/","target_url":"https://docs.microsoft.com/en-us/previous-versions/msp-n-p/dn170416(v%3dpandp.10)"},{"source_url":"/articles/history/","target_url":"https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff647347(v%3dpandp.10)"},{"source_url":"/articles/history/","target_url":"https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff649080(v%3dpandp.10)"},{"source_url":"/articles/history/","target_url":"https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff663144(v%3dpandp.10)"},{"source_url":"/articles/history/","target_url":"https://docs.microsoft.com/en-us/previous-versions/msp-n-p/hh237492(v%3dpandp.10)"},{"source_url":"/articles/installation/","target_url":"https://docs.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files#floating-versions"},{"source_url":"/articles/installation/","target_url":"https://prismlibrary.github.io/"},{"source_url":"/articles/installation/","target_url":"https://www.nuget.org/packages/Unity"},{"source_url":"/articles/installation/","target_url":"https://www.nuget.org/packages/Unity.Abstractions/"},{"source_url":"/articles/installation/","target_url":"https://www.nuget.org/packages/Unity.Container/"},{"source_url":"/articles/installation/","target_url":"https://www.nuget.org/packages/Unity/"},{"source_url":"/articles/introduction/","target_url":"#managing-the-lifetime-of-objects"},{"source_url":"/articles/introduction/","target_url":"#populating-collections"},{"source_url":"/articles/introduction/","target_url":"#registering-types-and-object-instances"},{"source_url":"/articles/introduction/","target_url":"#specifying-values-for-injection"},{"source_url":"/articles/introduction/","target_url":"#support-for-deferred-resolution"},{"source_url":"/articles/introduction/","target_url":"#the-types-of-objects-unity-can-create"},{"source_url":"/articles/introduction/","target_url":"https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/new-operator"},{"source_url":"/articles/introduction/","target_url":"https://en.wikipedia.org/wiki/Inversion_of_control"},{"source_url":"/articles/introduction/","target_url":"https://en.wikipedia.org/wiki/Open_source"},{"source_url":"/articles/introduction/","target_url":"https://github.com/unitycontainer/unity/blob/master/LICENSE"},{"source_url":"/articles/quickstart/","target_url":"/tutorials/composition/mapping/mapping/"},{"source_url":"/articles/quickstart/","target_url":"/tutorials/composition/selection/selection/"},{"source_url":"/articles/quickstart/","target_url":"/tutorials/lifetime/lifetime/"},{"source_url":"/articles/toc.json","target_url":"/articles/application/"},{"source_url":"/articles/toc.json","target_url":"/articles/changelog/"},{"source_url":"/articles/toc.json","target_url":"/articles/design/"},{"source_url":"/articles/toc.json","target_url":"/articles/features/"},{"source_url":"/articles/toc.json","target_url":"/articles/installation/"},{"source_url":"/articles/toc.json","target_url":"/articles/introduction/"},{"source_url":"/articles/toc.json","target_url":"/articles/quickstart/"},{"source_url":"/readme/","target_url":"https://ci.appveyor.com/api/projects/status/50hjsoi3gqu1becr?svg=true"},{"source_url":"/readme/","target_url":"https://ci.appveyor.com/project/unitycontainer/documentation"},{"source_url":"/readme/","target_url":"https://github.com/unitycontainer/documentation"},{"source_url":"/readme/","target_url":"https://unitycontainer.github.io"},{"source_url":"/specs/toc.json","target_url":"/specs/field/"},{"source_url":"/specs/toc.json","target_url":"/specs/method/"},{"source_url":"/specs/toc.json","target_url":"/specs/property/"},{"source_url":"/specs/toc.json","target_url":"/specs/specification/"},{"source_url":"/toc.json","target_url":"/articles/application/"},{"source_url":"/toc.json","target_url":"/articles/changelog/"},{"source_url":"/toc.json","target_url":"/articles/design/"},{"source_url":"/toc.json","target_url":"/articles/features/"},{"source_url":"/toc.json","target_url":"/articles/installation/"},{"source_url":"/toc.json","target_url":"/articles/introduction/"},{"source_url":"/toc.json","target_url":"/articles/quickstart/"},{"source_url":"/toc.json","target_url":"/tutorials/annotation/constructor/"},{"source_url":"/toc.json","target_url":"/tutorials/annotation/field/"},{"source_url":"/toc.json","target_url":"/tutorials/annotation/method/"},{"source_url":"/toc.json","target_url":"/tutorials/annotation/parameter/"},{"source_url":"/toc.json","target_url":"/tutorials/annotation/property/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/buildup/buildup/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/collections/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/generics/deferred/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/generics/lazy/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/generics/metadata/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/mapping/generic/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/mapping/implementation/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/overrides/dependency/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/overrides/field/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/overrides/parameter/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/overrides/property/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/resolution/resolution/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/resolution/type/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/selection/constructor/"},{"source_url":"/toc.json","target_url":"/tutorials/extensions/activation/"},{"source_url":"/toc.json","target_url":"/tutorials/extensions/compilation/"},{"source_url":"/toc.json","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/toc.json","target_url":"/tutorials/extensions/legacy/"},{"source_url":"/toc.json","target_url":"/tutorials/hierarchies/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/container/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/external/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/factory/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/instance/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/metadata/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/field/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/injection/default/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/injection/injected/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/injection/resolved/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/method/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/property/"},{"source_url":"/tutorials/annotation/annotation/","target_url":"/tutorials/annotation/constructor/"},{"source_url":"/tutorials/annotation/annotation/","target_url":"/tutorials/annotation/field/"},{"source_url":"/tutorials/annotation/annotation/","target_url":"/tutorials/annotation/method/"},{"source_url":"/tutorials/annotation/annotation/","target_url":"/tutorials/annotation/parameter/"},{"source_url":"/tutorials/annotation/annotation/","target_url":"/tutorials/annotation/property/"},{"source_url":"/tutorials/annotation/constructor/","target_url":"/tutorials/composition/selection/constructor/"},{"source_url":"/tutorials/annotation/constructor/","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/annotation/constructor/","target_url":"/tutorials/registration/type/constructor/constructor/"},{"source_url":"/tutorials/annotation/method/","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/composition/composition/","target_url":"/tutorials/composition/resolution/resolution/"},{"source_url":"/tutorials/composition/overrides/override/","target_url":"/images/resolver-override.png"},{"source_url":"/tutorials/composition/overrides/override/","target_url":"/tutorials/composition/overrides/dependency/"},{"source_url":"/tutorials/composition/overrides/override/","target_url":"/tutorials/composition/overrides/field/"},{"source_url":"/tutorials/composition/overrides/override/","target_url":"/tutorials/composition/overrides/parameter/"},{"source_url":"/tutorials/composition/overrides/override/","target_url":"/tutorials/composition/overrides/property/"},{"source_url":"/tutorials/composition/resolution/resolution/","target_url":"/tutorials/composition/collections/"},{"source_url":"/tutorials/composition/resolution/resolution/","target_url":"/tutorials/composition/generics/deferred/"},{"source_url":"/tutorials/composition/resolution/resolution/","target_url":"/tutorials/composition/generics/generics/"},{"source_url":"/tutorials/composition/resolution/resolution/","target_url":"/tutorials/composition/overrides/override/"},{"source_url":"/tutorials/composition/resolution/resolution/","target_url":"/tutorials/composition/resolution/type/"},{"source_url":"/tutorials/composition/selection/constructor/","target_url":"/tutorials/annotation/annotation/"},{"source_url":"/tutorials/composition/selection/constructor/","target_url":"/tutorials/annotation/constructor/"},{"source_url":"/tutorials/composition/selection/constructor/","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/composition/selection/constructor/","target_url":"/tutorials/registration/metadata/"},{"source_url":"/tutorials/composition/selection/constructor/","target_url":"/tutorials/registration/registration/"},{"source_url":"/tutorials/composition/selection/constructor/","target_url":"/tutorials/registration/type/constructor/constructor/"},{"source_url":"/tutorials/composition/selection/constructor/","target_url":"/tutorials/registration/type/constructor/constructor/#restrictions"},{"source_url":"/tutorials/definitions/","target_url":"https://docs.microsoft.com/en-us/dotnet/standard/generics/#generics_terminology"},{"source_url":"/tutorials/extensions/diagnostic/","target_url":"https://github.com/unitycontainer/container/blob/master/src/Extensions/DiagnosticExtensions.cs"},{"source_url":"/tutorials/lifetime/container/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/container/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/container/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/container/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/container/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/container/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/container/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/registration/factory/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/registration/instance/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/registration/type/registration/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/registration/instance/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/registration/factory/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/registration/instance/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/registration/type/registration/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/registration/factory/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/registration/instance/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/registration/type/registration/"},{"source_url":"/tutorials/lifetime/singleton/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/singleton/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/singleton/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/singleton/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/singleton/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/singleton/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/singleton/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/registration/factory/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/registration/instance/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/registration/type/registration/"},{"source_url":"/tutorials/lifetime/transient/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/transient/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/transient/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/transient/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/transient/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/transient/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/transient/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/registration/instance/","target_url":"/tutorials/composition/mapping/mapping/"},{"source_url":"/tutorials/registration/instance/","target_url":"/tutorials/registration/metadata/#name"},{"source_url":"/tutorials/registration/metadata/","target_url":"/tutorials/composition/mapping/mapping/"},{"source_url":"/tutorials/registration/metadata/","target_url":"/tutorials/lifetime/lifetime/"},{"source_url":"/tutorials/registration/metadata/","target_url":"https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection.servicedescriptor.implementationtype"},{"source_url":"/tutorials/registration/metadata/","target_url":"https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection.servicedescriptor.servicetype"},{"source_url":"/tutorials/registration/metadata/","target_url":"https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ee650974(v%3dpandp.10)"},{"source_url":"/tutorials/registration/registration/","target_url":"/tutorials/hierarchies/"},{"source_url":"/tutorials/registration/registration/","target_url":"/tutorials/registration/factory/"},{"source_url":"/tutorials/registration/registration/","target_url":"/tutorials/registration/instance/"},{"source_url":"/tutorials/registration/registration/","target_url":"/tutorials/registration/type/registration/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/composition/selection/constructor/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/registration/type/constructor/constructor/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/registration/type/constructor/param_values/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/annotation/annotation/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/annotation/constructor/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/metadata/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/registration/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/type/constructor/constructor/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/type/constructor/constructor/#restrictions"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/type/constructor/param_values/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/annotation/constructor/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/registration/type/constructor/param_values/"},{"source_url":"/tutorials/registration/type/constructor/param_count/","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/tutorials/registration/type/constructor/param_count/","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/tutorials/registration/type/constructor/param_count/","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/tutorials/registration/type/constructor/param_count/","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/tutorials/registration/type/constructor/param_count/","target_url":"/tutorials/registration/type/constructor/param_values/"},{"source_url":"/tutorials/registration/type/constructor/param_none/","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/registration/type/constructor/param_none/","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/tutorials/registration/type/constructor/param_none/","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/tutorials/registration/type/constructor/param_none/","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/tutorials/registration/type/constructor/param_none/","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/tutorials/registration/type/constructor/param_none/","target_url":"/tutorials/registration/type/constructor/param_values/"},{"source_url":"/tutorials/registration/type/constructor/param_types/","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/tutorials/registration/type/constructor/param_types/","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/tutorials/registration/type/constructor/param_types/","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/tutorials/registration/type/constructor/param_types/","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/tutorials/registration/type/constructor/param_types/","target_url":"/tutorials/registration/type/constructor/param_values/"},{"source_url":"/tutorials/registration/type/constructor/param_values/","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/tutorials/registration/type/constructor/param_values/","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/tutorials/registration/type/constructor/param_values/","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/tutorials/registration/type/constructor/param_values/","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/tutorials/registration/type/constructor/param_values/","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/tutorials/registration/type/registration/","target_url":"/tutorials/lifetime/lifetime/"},{"source_url":"/tutorials/registration/type/registration/","target_url":"/tutorials/registration/type/constructor/constructor/"},{"source_url":"/tutorials/registration/type/registration/","target_url":"/tutorials/registration/type/field/"},{"source_url":"/tutorials/registration/type/registration/","target_url":"/tutorials/registration/type/method/"},{"source_url":"/tutorials/registration/type/registration/","target_url":"/tutorials/registration/type/property/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/annotation/constructor/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/annotation/field/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/annotation/method/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/annotation/parameter/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/annotation/property/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/buildup/buildup/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/collections/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/generics/deferred/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/generics/lazy/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/generics/metadata/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/mapping/generic/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/mapping/implementation/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/overrides/dependency/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/overrides/field/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/overrides/parameter/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/overrides/property/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/resolution/resolution/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/resolution/type/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/selection/constructor/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/extensions/activation/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/extensions/compilation/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/extensions/legacy/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/hierarchies/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/factory/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/instance/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/metadata/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/field/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/injection/default/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/injection/injected/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/injection/resolved/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/method/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/property/"}]} \ No newline at end of file diff --git a/_site/.manifest.json b/_site/.manifest.json new file mode 100644 index 0000000..8610865 --- /dev/null +++ b/_site/.manifest.json @@ -0,0 +1 @@ +{"default_version_info":{"name":"","version_folder":"","xref_map":"xrefmap.yml"},"files":[{"asset_id":"api/index","original":"api/index.md","source_relative_path":"api/index.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"api/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"api/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"api/toc.json","original":"api/toc.yml","source_relative_path":"api/toc.yml","original_type":"Toc","type":"Toc","output":{".mta.json":{"is_raw_page":false,"relative_path":"api/toc.mta.json"},".json":{"is_raw_page":false,"relative_path":"api/toc.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/application","original":"articles/application.md","source_relative_path":"articles/application.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/application/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/application/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/changelog","original":"articles/changelog.md","source_relative_path":"articles/changelog.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/changelog/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/changelog/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/design","original":"articles/design.md","source_relative_path":"articles/design.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/design/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/design/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/features","original":"articles/features.md","source_relative_path":"articles/features.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/features/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/features/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/history","original":"articles/history.md","source_relative_path":"articles/history.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/history/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/history/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/installation","original":"articles/installation.md","source_relative_path":"articles/installation.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/installation/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/installation/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/introduction","original":"articles/introduction.md","source_relative_path":"articles/introduction.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/introduction/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/introduction/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/quickstart","original":"articles/quickstart.md","source_relative_path":"articles/quickstart.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/quickstart/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/quickstart/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/toc.json","original":"articles/toc.yml","source_relative_path":"articles/toc.yml","original_type":"Toc","type":"Toc","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/toc.mta.json"},".json":{"is_raw_page":false,"relative_path":"articles/toc.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"images/favicon.png","original":"images/favicon.png","source_relative_path":"images/favicon.png","original_type":"Resource","type":"Resource","output":{"resource":{"is_raw_page":false,"relative_path":"images/favicon.png","link_to_path":"P:\\Unity Container\\Develop\\Documentation\\images\\favicon.png"}},"skip_normalization":false,"skip_schema_check":false},{"asset_id":"images/logo.svg","original":"images/logo.svg","source_relative_path":"images/logo.svg","original_type":"Resource","type":"Resource","output":{"resource":{"is_raw_page":false,"relative_path":"images/logo.svg","link_to_path":"P:\\Unity Container\\Develop\\Documentation\\images\\logo.svg"}},"skip_normalization":false,"skip_schema_check":false},{"asset_id":"images/resolver-override.png","original":"images/resolver-override.png","source_relative_path":"images/resolver-override.png","original_type":"Resource","type":"Resource","output":{"resource":{"is_raw_page":false,"relative_path":"images/resolver-override.png","link_to_path":"P:\\Unity Container\\Develop\\Documentation\\images\\resolver-override.png"}},"skip_normalization":false,"skip_schema_check":false},{"asset_id":"index","original":"index.md","source_relative_path":"index.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"readme","original":"README.md","source_relative_path":"README.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"readme/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"readme/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/constructor","original":"specs/constructor.md","source_relative_path":"specs/constructor.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/constructor/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/constructor/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/field","original":"specs/field.md","source_relative_path":"specs/field.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/field/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/field/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/hierarchy","original":"specs/hierarchy.md","source_relative_path":"specs/hierarchy.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/hierarchy/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/hierarchy/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/method","original":"specs/method.md","source_relative_path":"specs/method.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/method/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/method/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/property","original":"specs/property.md","source_relative_path":"specs/property.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/property/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/property/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/specification","original":"specs/specification.md","source_relative_path":"specs/specification.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/specification/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/specification/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/summary","original":"specs/summary.md","source_relative_path":"specs/summary.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/summary/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/summary/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/toc.json","original":"specs/toc.yml","source_relative_path":"specs/toc.yml","original_type":"Toc","type":"Toc","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/toc.mta.json"},".json":{"is_raw_page":false,"relative_path":"specs/toc.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/workflow","original":"specs/workflow.md","source_relative_path":"specs/workflow.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/workflow/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/workflow/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"toc.json","original":"toc.yml","source_relative_path":"toc.yml","original_type":"Toc","type":"Toc","output":{".mta.json":{"is_raw_page":false,"relative_path":"toc.mta.json"},".json":{"is_raw_page":false,"relative_path":"toc.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/annotation/annotation","original":"tutorials/Annotation/annotation.md","source_relative_path":"tutorials/Annotation/annotation.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/annotation/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/annotation/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/annotation/constructor","original":"tutorials/Annotation/constructor.md","source_relative_path":"tutorials/Annotation/constructor.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/constructor/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/constructor/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/annotation/field","original":"tutorials/Annotation/field.md","source_relative_path":"tutorials/Annotation/field.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/field/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/field/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/annotation/method","original":"tutorials/Annotation/method.md","source_relative_path":"tutorials/Annotation/method.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/method/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/method/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/annotation/parameter","original":"tutorials/Annotation/parameter.md","source_relative_path":"tutorials/Annotation/parameter.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/parameter/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/parameter/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/annotation/property","original":"tutorials/Annotation/property.md","source_relative_path":"tutorials/Annotation/property.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/property/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/property/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/buildup/buildup","original":"tutorials/Composition/BuildUp/buildup.md","source_relative_path":"tutorials/Composition/BuildUp/buildup.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/buildup/buildup/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/buildup/buildup/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/collections","original":"tutorials/Composition/collections.md","source_relative_path":"tutorials/Composition/collections.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/collections/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/collections/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/composition","original":"tutorials/Composition/composition.md","source_relative_path":"tutorials/Composition/composition.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/composition/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/composition/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/generics/deferred","original":"tutorials/Composition/Generics/deferred.md","source_relative_path":"tutorials/Composition/Generics/deferred.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/deferred/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/deferred/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/generics/generics","original":"tutorials/Composition/Generics/generics.md","source_relative_path":"tutorials/Composition/Generics/generics.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/generics/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/generics/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/generics/lazy","original":"tutorials/Composition/Generics/lazy.md","source_relative_path":"tutorials/Composition/Generics/lazy.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/lazy/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/lazy/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/generics/metadata","original":"tutorials/Composition/Generics/metadata.md","source_relative_path":"tutorials/Composition/Generics/metadata.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/metadata/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/metadata/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/mapping/generic","original":"tutorials/Composition/Mapping/generic.md","source_relative_path":"tutorials/Composition/Mapping/generic.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/mapping/generic/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/mapping/generic/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/mapping/implementation","original":"tutorials/Composition/Mapping/implementation.md","source_relative_path":"tutorials/Composition/Mapping/implementation.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/mapping/implementation/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/mapping/implementation/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/mapping/mapping","original":"tutorials/Composition/Mapping/mapping.md","source_relative_path":"tutorials/Composition/Mapping/mapping.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/mapping/mapping/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/mapping/mapping/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/overrides/dependency","original":"tutorials/Composition/Overrides/dependency.md","source_relative_path":"tutorials/Composition/Overrides/dependency.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/dependency/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/dependency/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/overrides/field","original":"tutorials/Composition/Overrides/field.md","source_relative_path":"tutorials/Composition/Overrides/field.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/field/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/field/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/overrides/override","original":"tutorials/Composition/Overrides/override.md","source_relative_path":"tutorials/Composition/Overrides/override.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/override/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/override/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/overrides/parameter","original":"tutorials/Composition/Overrides/parameter.md","source_relative_path":"tutorials/Composition/Overrides/parameter.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/parameter/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/parameter/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/overrides/property","original":"tutorials/Composition/Overrides/property.md","source_relative_path":"tutorials/Composition/Overrides/property.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/property/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/property/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/resolution/resolution","original":"tutorials/Composition/Resolution/resolution.md","source_relative_path":"tutorials/Composition/Resolution/resolution.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/resolution/resolution/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/resolution/resolution/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/resolution/type","original":"tutorials/Composition/Resolution/type.md","source_relative_path":"tutorials/Composition/Resolution/type.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/resolution/type/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/resolution/type/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/selection/constructor","original":"tutorials/Composition/Selection/constructor.md","source_relative_path":"tutorials/Composition/Selection/constructor.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/selection/constructor/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/selection/constructor/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/selection/selection","original":"tutorials/Composition/Selection/selection.md","source_relative_path":"tutorials/Composition/Selection/selection.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/selection/selection/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/selection/selection/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/definitions","original":"tutorials/definitions.md","source_relative_path":"tutorials/definitions.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/definitions/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/definitions/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/extensions/activation","original":"tutorials/Extensions/activation.md","source_relative_path":"tutorials/Extensions/activation.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/activation/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/activation/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/extensions/compilation","original":"tutorials/Extensions/compilation.md","source_relative_path":"tutorials/Extensions/compilation.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/compilation/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/compilation/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/extensions/diagnostic","original":"tutorials/Extensions/diagnostic.md","source_relative_path":"tutorials/Extensions/diagnostic.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/diagnostic/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/diagnostic/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/extensions/extensions","original":"tutorials/Extensions/extensions.md","source_relative_path":"tutorials/Extensions/extensions.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/extensions/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/extensions/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/extensions/legacy","original":"tutorials/Extensions/legacy.md","source_relative_path":"tutorials/Extensions/legacy.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/legacy/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/legacy/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/hierarchies","original":"tutorials/hierarchies.md","source_relative_path":"tutorials/hierarchies.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/hierarchies/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/hierarchies/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/container_transient","original":"tutorials/lifetime/container_transient.md","source_relative_path":"tutorials/lifetime/container_transient.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/container_transient/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/container_transient/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/container","original":"tutorials/lifetime/container.md","source_relative_path":"tutorials/lifetime/container.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/container/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/container/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/disposal","original":"tutorials/lifetime/disposal.md","source_relative_path":"tutorials/lifetime/disposal.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/disposal/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/disposal/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/external","original":"tutorials/lifetime/external.md","source_relative_path":"tutorials/lifetime/external.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/external/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/external/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/hierarchical","original":"tutorials/lifetime/hierarchical.md","source_relative_path":"tutorials/lifetime/hierarchical.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/hierarchical/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/hierarchical/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/lifetime","original":"tutorials/lifetime/lifetime.md","source_relative_path":"tutorials/lifetime/lifetime.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/lifetime/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/lifetime/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/managers","original":"tutorials/lifetime/managers.md","source_relative_path":"tutorials/lifetime/managers.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/managers/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/managers/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/resolve","original":"tutorials/lifetime/resolve.md","source_relative_path":"tutorials/lifetime/resolve.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/resolve/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/resolve/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/singleton","original":"tutorials/lifetime/singleton.md","source_relative_path":"tutorials/lifetime/singleton.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/singleton/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/singleton/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/thread","original":"tutorials/lifetime/thread.md","source_relative_path":"tutorials/lifetime/thread.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/thread/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/thread/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/transient","original":"tutorials/lifetime/transient.md","source_relative_path":"tutorials/lifetime/transient.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/transient/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/transient/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/factory","original":"tutorials/registration/factory.md","source_relative_path":"tutorials/registration/factory.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/factory/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/factory/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/instance","original":"tutorials/registration/instance.md","source_relative_path":"tutorials/registration/instance.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/instance/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/instance/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/metadata","original":"tutorials/registration/metadata.md","source_relative_path":"tutorials/registration/metadata.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/metadata/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/metadata/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/registration","original":"tutorials/registration/registration.md","source_relative_path":"tutorials/registration/registration.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/registration/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/registration/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/constructor/annotation","original":"tutorials/registration/Type/Constructor/annotation.md","source_relative_path":"tutorials/registration/Type/Constructor/annotation.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/annotation/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/annotation/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/constructor/automatic","original":"tutorials/registration/Type/Constructor/automatic.md","source_relative_path":"tutorials/registration/Type/Constructor/automatic.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/automatic/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/automatic/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/constructor/constructor","original":"tutorials/registration/Type/Constructor/constructor.md","source_relative_path":"tutorials/registration/Type/Constructor/constructor.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/constructor/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/constructor/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/constructor/param_count","original":"tutorials/registration/Type/Constructor/param_count.md","source_relative_path":"tutorials/registration/Type/Constructor/param_count.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_count/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_count/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/constructor/param_none","original":"tutorials/registration/Type/Constructor/param_none.md","source_relative_path":"tutorials/registration/Type/Constructor/param_none.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_none/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_none/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/constructor/param_types","original":"tutorials/registration/Type/Constructor/param_types.md","source_relative_path":"tutorials/registration/Type/Constructor/param_types.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_types/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_types/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/constructor/param_values","original":"tutorials/registration/Type/Constructor/param_values.md","source_relative_path":"tutorials/registration/Type/Constructor/param_values.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_values/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_values/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/field","original":"tutorials/registration/Type/field.md","source_relative_path":"tutorials/registration/Type/field.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/field/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/field/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/injection/default","original":"tutorials/registration/Type/Injection/default.md","source_relative_path":"tutorials/registration/Type/Injection/default.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/default/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/default/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/injection/injected","original":"tutorials/registration/Type/Injection/injected.md","source_relative_path":"tutorials/registration/Type/Injection/injected.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/injected/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/injected/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/injection/injection","original":"tutorials/registration/Type/Injection/injection.md","source_relative_path":"tutorials/registration/Type/Injection/injection.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/injection/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/injection/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/injection/resolved","original":"tutorials/registration/Type/Injection/resolved.md","source_relative_path":"tutorials/registration/Type/Injection/resolved.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/resolved/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/resolved/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/method","original":"tutorials/registration/Type/method.md","source_relative_path":"tutorials/registration/Type/method.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/method/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/method/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/parameter","original":"tutorials/registration/Type/parameter.md","source_relative_path":"tutorials/registration/Type/parameter.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/parameter/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/parameter/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/property","original":"tutorials/registration/Type/property.md","source_relative_path":"tutorials/registration/Type/property.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/property/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/property/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/registration","original":"tutorials/registration/Type/registration.md","source_relative_path":"tutorials/registration/Type/registration.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/registration/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/registration/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/toc.json","original":"tutorials/toc.yml","source_relative_path":"tutorials/toc.yml","original_type":"Toc","type":"Toc","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/toc.mta.json"},".json":{"is_raw_page":false,"relative_path":"tutorials/toc.json"}},"skip_normalization":true,"skip_schema_check":true}],"is_already_processed":true,"source_base_path":".","version_info":{},"items_to_publish":[{"relative_path":"filemap.json","type":"filemap"}]} \ No newline at end of file diff --git a/_site/.publish.json b/_site/.publish.json new file mode 100644 index 0000000..fae1486 --- /dev/null +++ b/_site/.publish.json @@ -0,0 +1 @@ +{"name":"","product":"","base_path":"/","files":[{"url":"/images/favicon.png","path":"../images/favicon.png","source_path":"images/favicon.png","locale":"en-us"},{"url":"/images/logo.svg","path":"../images/logo.svg","source_path":"images/logo.svg","locale":"en-us"},{"url":"/images/resolver-override.png","path":"../images/resolver-override.png","source_path":"images/resolver-override.png","locale":"en-us"},{"url":"/api/","path":"api/index.html","source_path":"api/index.md","locale":"en-us","canonical_url":"https:///en-us/api/","conceptual":"\n

This documentation is generated by DocFX

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/api/index.md","depot_name":".","document_id":"b900a6ee-1d3b-cc19-ca58-f621b5ddfbff","document_version_independent_id":"62c4b9bf-c97a-4afb-633c-37a573696248","gitcommit":"https://github.com/unitycontainer/documentation/blob/fc9fe03376dd8ca08cf491c586c6f6e4e720545a/api/index.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/api/index.md","original_content_git_url_template":"{repo}/blob/{branch}/api/index.md","rawTitle":"

API Documentation Section

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"API Documentation Section","updated_at":"2017-11-26 02:59 AM","wordCount":6},{"url":"/api/toc.json","path":"api/toc.json","source_path":"api/toc.yml","locale":"en-us"},{"url":"/articles/application/","path":"articles/application/index.html","source_path":"articles/application.md","locale":"en-us","canonical_url":"https:///en-us/articles/application/","conceptual":"\n

Features such as inversion of control, dependency injection, interception, factory, and lifetime provide several major advantages when building applications that consist of many individual classes and components. Designing applications that conform to these patterns can provide numerous benefits:

\n\n

Unity provides a comprehensive dependency injection and interception platform, and is easy to incorporate into your applications. However, it does change the way that you design these applications. The following sections of this topic describe areas where dependency injection is useful:

\n\n

Pluggable Architectures

\n

By designing applications to use a pluggable architecture, developers and users can add and modify the functionality of an application without changing the core code or processes. ASP.NET is an example of a pluggable architecture, where you can add and remove providers for features such as authentication, caching, and session management. Unity also facilitates a pluggable architecture that allows you to substitute the container for one of your own design and add extensions through the container extensions architecture.

\n

By using dependency injection mechanisms, such as Unity container, developers can map different components that implement a specific interface (such as a provider interface) or that inherit from a specific base class to the appropriate concrete implementations. Developers can then obtain a reference to the appropriate provider component at run time, without having to specify exactly which implementation of the component is required. The following sections of this topic, Managing Crosscutting Concerns and Service and Component Location, show how you can use dependency injection to create instances of a specific class based on a request for a more general class (such as an interface or base class definition).

\n

In addition, the providers may require instances of other components. For example, a caching provider may need to use the services of a cryptography component or service. When components require the services of other components, you can use dependency injection to automatically instantiate and inject instances of these components into a component, based on either configuration settings in the container or on code within the application.

\n

For more information about how you can use dependency injection in this way, see Using Injection Attributes.

\n

Managing Crosscutting Concerns

\n

The features and tasks implemented in applications are often referred to as concerns. The tasks specific to the application are core concerns. The tasks that are common across many parts of the application, and even across different applications, are crosscutting concerns. Most large applications require services such as logging, caching, validation, and authorization, and these are crosscutting concerns.

\n

The simplest way to centralize these features is to build separate components that implement each of the required features, and then use these components wherever the management of that concern is required—in one or more applications. By using dependency injection mechanisms, such as a Unity container, developers can register components that implement crosscutting concerns and then obtain a reference to the component at run time, without having to specify exactly which implementation of the component is required.

\n

For example, if you have a component named FileLogger that performs logging tasks, your application can instantiate this component using the new operator, as shown in the following code.

\n
FileLogger myLogger = new FileLogger();\n
\n

If you then want to change the application to use the new component, FastFileLogger, you must change the application code. However, if you have an interface ILogger that all implementations of the logging component uses, you might instead write the code like the following.

\n
ILogger myLogger = new FileLogger();\n
\n

However, this does not solve the problem because you still must find everywhere in the code where you used new() to create an instance of the specific class. Instead, you can use a dependency injection mechanism to map the ILogger interface to a specific concrete instance of the logging component, or even to multiple implementations, so that the application can specify which one it requires. The following code uses Unity to register a mapping for both a default type of logging component and a named type with the ILogger interface. Alternatively, you can specify these mappings using the Unity configuration file.

\n
// Create container and register types\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<ILogger, FileLogger>();       // default instance\nmyContainer.RegisterType<ILogger, FastFileLogger>("FastLogger");\n
\n

The application can then obtain a reference to the default logging component using the following code.

\n
ILogger myLogger = myContainer.Resolve<ILogger>();\n
\n

In addition, the application can use a variable (perhaps set in configuration or at run time) to specify a different implementation of the logging component interface as required, as shown in the following code.

\n
// Retrieve logger type name from configuration\nString loggerName = ConfigurationManager.AppSettings["LoggerName"].ToString();\nILogger myLogger = myContainer.Resolve<ILogger>(loggerName);\n
\n

For more information about registering types, type mappings, and resolving instances, see Resolving Objects.

\n

Service and Component Location

\n

Frequently, applications require the use of services or components that are specific to the application; examples are business logic components, data access components, interface components, and process controllers. In some cases, these services may be instance-based, so that each section of the application or each task requires a separate individual instance of the service. However, it is also common for services to be singleton-based, so that every user of the service references the same single instance of the service.

\n

A service location facility makes it easy for an application to obtain a reference to a service or component, without having to specify where to look for the specific service or whether it is a singleton-based or an instance-based service. By using dependency injection mechanisms, such as the Unity container, developers can register services in the appropriate way and then obtain a reference to the service at run time, without having to specify exactly which implementation of the service is required or what type of instance it actually is.

\n

For example, if you have a singleton service class named CustomerData that you interact with to read and update information for any customer, your application obtains a reference to this service usually by calling a static GetInstance method of the service (which ensures that it is a singleton and that only one instance can exist), as shown in the following code.

\n
CustomerData cData = CustomerData.GetInstance();\n
\n

Instead, you can use the Unity container to set the CustomerData class type with a specific lifetime that ensures it behaves as a singleton so that every request for the service returns the same instance, as shown in the following code. Alternatively, you could specify these mappings using the Unity configuration file.

\n
// Create container and register type as a singleton instance\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<CustomerData>(new ContainerControlledLifetimeManager());\n
\n

The application can then obtain a reference to the single instance of the CustomerData service using the following code. If the instance does not yet exist, the container creates it.

\n
CustomerData cData = myContainer.Resolve<CustomerData>();\n
\n

In addition, perhaps a new CustomerFile component you decide to use in your application inherits the same base class named CustomerAccessBase as the CustomerData service, but it is not a singleton—instead, it requires that your application instantiate an instance for each customer. In this case, you can specify mapping names when you register one component as a singleton type and one component as an instance type (with the default transient lifetime), and then use the same application code to retrieve the required instance.

\n

For example, the following code shows how you can register two named mappings for objects that inherit from the same base class, then—at run time—collect a string value from elsewhere in the application configuration that specifies which of the mappings to use. In this case, the value comes from the AppSettings section of the configuration file. If the value with the key CustomerService contains CustomerDataService, the code returns an instance of the CustomerData class. If it contains the value CustomerFileService, the code returns an instance of the CustomerFile class.

\n
IUnityContainer myContainer = new UnityContainer();\n// Register CustomerData type as a singleton instance\nmyContainer.RegisterType<CustomerAccessBase, CustomerData>("CustomerDataService", \n                        new ContainerControlledLifetimeManager());\n// Register CustomerFile type with the default transient lifetime\nmyContainer.RegisterType<CustomerAccessBase, CustomerFile>("CustomerFileService");\n...\nString serviceName = ConfigurationManager.AppSettings["CustomerService"].ToString();\nCustomerAccessBase cData \n  = (CustomerAccessBase)myContainer.Resolve<CustomerAccessBase>(serviceName);\n
\n

For more information about registering types, type mappings, and resolving instances, see Resolving Objects. For more information about using lifetime managers to control the creation, lifetime, and disposal of objects, see Understanding Lifetime Managers.

\n

Policy Injection through Interception

\n

Unity interception with its built-in policy injection module enables you to effectively capture calls to objects you resolve through the Unity DI container, and apply a policy that adds additional functionality to the target object. Typically, you will use this technique to change the behavior of existing objects, or to implement the management of crosscutting concerns through reusable handlers. You can specify how to match the target object using a wide range of matching rules, and construct a policy pipeline that contains one or more call handlers.

\n

Calls to the intercepted methods or properties of the target object then pass through the call handlers in the order you add them to the pipeline, and return through them in the reverse order. Your call handlers can access the values in the call, change these values, and control execution of the call. For example, the call handlers might authorize users, validate parameter values, cache the return value, and shortcut execution so that the target method does not actually execute where this is appropriate.

\n

You can configure Unity for policy injection by using a configuration file at design time, see Configuring Policy Injection Policies, or by using the API at run time, see Registering Policy Injection Components.

\n

The following example uses the Unity API to demonstrate how you can configure Unity to perform interception on a target object, using a policy that contains a logging handler and a validation handler. Notice that the logging handler is added first, so that it will log calls even if validation fails and the validation handler shortcuts the pipeline instead of calling the method of the target object. You can use the streamlined policy definition API provided by the Unity interception container extension to configure the container at run time or you can specify the same behavior at design time by using a configuration file. For an example using the API, see Registering Policy Injection Components. For a design time example, see Configuration Files for Interception.

\n
// Create a container and add the interception extension.\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.AddNewExtension<Interception>();\n\n// Configure the container with a policy named MyPolicy\n// that uses a TypeMatchingRule to match a custom class\n// and adds a logging handler and a validation handler\n// to the handler pipeline. You must specify at least one\n// matching rule or the policy will not be applied.\nmyContainer.Configure<Interception>()\n    .AddPolicy("MyPolicy")\n         .AddMatchingRule<TypeMatchingRule>(\n                  new InjectionConstructor("MyCustomType"))\n         .AddCallHandler(typeof(MyLoggingCallHandler))\n         .AddCallHandler(typeof(MyValidationCallHandler));\n\n// Configure the container to intercept calls to the\n// custom class using a TransparentProxyInterceptor.\nmyContainer.RegisterType<MyCustomType>("myType",\n    new Interceptor<TransparentProxyInterceptor>(),\n    new InterceptionBehavior<PolicyInjectionBehavior>());\n\n\n// Resolve the custom type through the container when\n// you are ready to use it. When you call a method or\n// set a property on it, the call will pass through\n// the logging handler and the validation handler.\nMyCustomType myNewInstance = myContainer.Resolve<MyCustomType>("myType");\n
\n

For more information about interception and policy injection, see Using Interception and Policy Injection.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/application.md","depot_name":".","document_id":"2f0a617d-9eaf-6117-88ac-584be21485aa","document_version_independent_id":"c37f1880-64cb-c594-2a5c-a9c15ec1b0e8","gitcommit":"https://github.com/unitycontainer/documentation/blob/a08c5cd38778dbc7606660e730b63c1a6800daf1/articles/application.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/application.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/application.md","rawTitle":"

Application Design Concepts with Unity

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Application Design Concepts with Unity","uid":"Article.Application.Design","updated_at":"2019-03-04 02:14 AM","wordCount":1920},{"url":"/articles/changelog/","path":"articles/changelog/index.html","source_path":"articles/changelog.md","locale":"en-us","canonical_url":"https:///en-us/articles/changelog/","conceptual":"\n

This document contains a list of breaking changes and noteworthy issues. At this time the list is not complete. If you discover an issue while upgrading that is not covered here please open an issue or, preferably, issue a pull request. You can clone the wiki to do that.

\n

Some breaking changes are currently documented in the issue tracker only. Again, please report any such findings by commenting on the issue.

\n

Upgrading to Unity 5.9.x

\n

Starting with version 5.9.0 Unity package will only contain Unity.Abstractions and Unity.Container packages.

\n

All other packages will be available as individual NuGet packages

\n

Breaking change

\n

Some extension methods have been moved out of the Unity nuget package and have been moved into their own individual packages.

\n

For example, the following code will no longer work

\n
Container = new UnityContainer();\nContainer.LoadConfiguration();\n
\n

You will receive an error that the namespace Microsoft.Practices.Unity.Configuration no longer exists in your using statements.

\n

The Fix

\n

To fix this and similar problems, add the required nuget packages separately.

\n

For the example above, add nuget package Unity.Configuration

\n

This wiki created with help from quintonn

\n

Upgrading to Unity 5.8.x

\n

Unity 5.8.0 adds support for nesting generic types when resolving collections (arrays and enumerables).

\n

Problem

\n

Unity has build in support for IEnumerable<>, Array ( type[] ), Func<>, and Lazy<>. Theoretically it should be able to recognize these types and properly resolve them individually and in combination. Unfortunately it did not do so. For example if you registered several interfaces like this:

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n
\n

resolving enumerable in combination with generic will resolve incorrectly:

\n
Resolve<Lazy<IEnumenrable<type>>>  - resolve correctly\nResolve<IEnumenrable<Lazy<type>>>  - resolve empty\n
\n

The Fix

\n

Release v5.8.0 fixes resolution of collections of generic and array types and Lazy collections of items. This will now work fine:

\n
Resolve<Lazy<IEnumenrable<type>>>\nResolve<IEnumenrable<Lazy<type>>>\n\nResolve<Lazy<type[]>>\nResolve<Lazy<type>[]>\n\nResolve<IEnumerable<Lazy<Func<IService>>>>()\nResolve<IEnumerable<Func<Lazy<IService>>>>()\n\nResolve<Lazy<Func<IService>>[]>()\nResolve<Func<Lazy<IService>>[]>()\n
\n

The logic behind resolving collections is to find type to enumerate and get all registrations for it no matter how deep in generics tree. Enumerated type could be:

\n\n

So, in this example

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n\nResolve<IEnumerable<Func<Lazy<IService>>>>();\n
\n

Unity will recognize IService as registered type and enumerate four instances of Func<Lazy<IService>>.

\n

But if you look at this example:

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n\nRegisterType(typeof(IFoo<>), typeof(Foo<>));  <-- note this registraton\n\nResolve<IEnumerable<IFoo<IService>>>();\n
\n

Returned result is different! Adding registration for IFoo changes enumerable type to IFoo. This resolution will only return one item.

\n

Breaking change

\n

Sometimes you do want Unity to ignore a generic when it resolves collections similar to how it deals with Lazy and Func. Suppose in example above you want Unity to resolve all four of IService instances wrapped in IFoo.\nTo do so you would have to make IFoo<> a Built-In type of the container.

\n

It could be simply done by creating either IBuildPlanCreatorPolicy or IBuildPlanPolicy factories.\nThere are just a few steps you need to follow:

\n\n

For examples of how it should be done please follow this link.

\n

Upgrading to Unity 5.2.1

\n

This release fundamentally changes how types are registered with Unity. The rationale behind this change is this issue.

\n

The problem

\n

To explain the problem please look at this example. Prior to this release registering singleton ILogger service like this:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager(), new InjectionConstructor());\n
\n

would create two registrations:

\n
    \n
  1. A mapping between ILogger to MockLogger
  2. \n
  3. A singleton registration for MockLogger with default constructor.
  4. \n
\n

Calling container.Resolve<ILogger>() resolves singleton instance of MockLogger as expected, and resolving type MockLogger container.Resolve<MockLogger>() would resolve the same instance of MockLogger. Both ContainerControlledLifetimeManager and InjectionConstructor would be associated with MockLogger registration.

\n

Suppose you want to resolve a new MockLogger whenever it is resolved directly like this container.Resolve<MockLogger>(). To do so you would create another registration just for the MockLogger:

\n
container.RegisterType<MockLogger>(new TransientLifetimeManager());\n
\n

So, now when you call container.Resolve<MockLogger>() it resolves new instance of the MockLogger class and uses constructor with longest list of parameters. All is well and as expected. But now if you try to resolve container.Resolve<ILogger>() it is no longer returns singleton instance of the MockLogger. Now it also returns new MockLogger created with constructor with longest list of parameters.\nThe subsequent registration overwritten all information associated with ILogger.

\n

The solution

\n

Release 5.2.1 fixes this behavior. Now all information passed to Unity during registration is stored with FromType instead of ToType. So registering type like this:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager(), new InjectionConstructor());\n
\n

creates just one registration ILogger and associates LifetimeManager and all provided InjectionMemebers with it. At this point MockLogger is still unregistered.

\n

So, think about it as a RegisteredType and MappedTo type. If you look at initial example:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager());\n
\n

ILogger - is a registered type and ContainerControlledLifetimeManager is associated with this type, as well as any InjectionMembers you provide during registration.

\n

Breaking changes

\n

This release breaks a lot of registrations. Anything relaying on TypeTo being registered in mappings will fail. For example:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager());\n\nAssert.AreSame( container.Resolve<ILogger>(), container.Resolve<MockLogger>()) <-- Will fail now\n
\n

This could be easily fixed by slightly modifying how types are registered. If you want TypeTo to be available independently you could register it like this:

\n
container.RegisterType<MockLogger>(new ContainerControlledLifetimeManager());\ncontainer.RegisterType<ILogger, MockLogger>();\n\nAssert.AreSame( container.Resolve<ILogger>(), container.Resolve<MockLogger>()) <-- Passes\n
\n

This applies to anything you registering with the type: factories, injection members, interceptors, etc.

\n

Fixing

\n

With some creative searching and sorting these breaking registrations could be identified statically, without running the code. The key is to look for registrations with same TypeTo type. If you see multiple registrations registering same type as implementation type and at least one of them has non transient lifetime it is a good indicator that it might fail after update:

\n
container.RegisterType<ILogger, Logger>(new ContainerControlledLifetimeManager());\n...\ncontainer.RegisterType<IOtherLogger, Logger>();\n
\n

To fix just add individual registration for implementation type with proper lifetime manager like so:

\n
container.RegisterType<Logger>(new ContainerControlledLifetimeManager());\n...\ncontainer.RegisterType<ILogger, Logger>();\n...\ncontainer.RegisterType<IOtherLogger, Logger>();\n
\n

Make sure it is registered before other mappings.

\n

Upgrading to Unity.Abstractions 4.1.4

\n

Lifetime managers now support the value null. GetValue must return LifetimeManager.NoValue to indicate that no value has been set. You must upgrade custom lifetime managers to not return null inappropriately. Mainly the GetValue method must be adjusted. The built-in lifetime managers have been upgraded. If you do not use custom lifetime managers you should not see any changes in behavior. (https://github.com/unitycontainer/abstractions/issues/102)

\n

Design time validation for LifetimeManager was added. The marker interfaces ITypeLifetimeManager, IInstanceLifetimeManager and IFactoryLifetimeManager have been introduced. Various other parts of the framework now refer to these types instead of LifetimeManager. The marker interfaces are empty and LifetimeManager does not inherit from any of them. This can lead to compiler errors. In general these errors can be fixed through changing the type of variables or through casting. (https://github.com/unitycontainer/abstractions/issues/90)

\n

Upgrading to Unity.Abstractions 4.0.0.350

\n

The namespace Unity.Attributes was removed. These types are now in namespace Unity. One common type that is affected is DependencyAttribute. Suggested way to upgrade: Mass delete the old namespace reference using the Regex using Unity.Attributes;\\r\\n in Visual Studio. Then, use Resharper to fix missing imports in the entire solution in one action.

\n

Upgrading to Unity.Abstractions 4.0.0.0

\n

A few breaking changes have been made. For more information see https://github.com/unitycontainer/abstractions/issues/97.

\n

Problem

\n

Build error The type or namespace name 'IBuilderContext' could not be found.

\n

Solution

\n

IBuilderContext has been replaced with: Unity.Builder.BuilderContext

\n

Problem

\n

Build Error `'IBuildPlanCreatorPolicy' is obsolete: 'This interface has been replaced with Unity.Policy.ResolveDelegateFactory delegate'``

\n

Solution

\n

See this example or this example or this example

\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PreBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PreBuildUp method to: public override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PostBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PostBuildUp method to:\npublic override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

Build Error in Builder Strategy derived class:\n'BuilderContext' does not contain a definition for 'AddResolverOverrides' and no accessible extension method 'AddResolverOverrides' accepting a first argument of type 'BuilderContext' could be found

\n

Solution

\n

The behaviour can be mimicked by something like:

\n
        public static void AddResolverOverrides(ref BuilderContext ctx, ResolverOverride theOverride)\n        {\n            var newOverrides = ctx.Overrides;\n            newOverrides = newOverrides == null \n                ? new ResolverOverride[]{theOverride} \n                : newOverrides.Concat(new[] {theOverride}).ToArray();\n\n            ctx.Overrides = newOverrides;\n        }\n
\n

Problem

\n

'BuilderContext' does not contain a definition for 'ParentContext' and no accessible extension method 'ParentContext' accepting a first argument of type 'BuilderContext' could be found

\n

I used the ParentContext of IBuilderContext to determine if anything in the build hierarchy was of a certain type. More specifically I was checking to see if a specific decorator class was being applied as part of the build.

\n

Solution

\n

There is an IntPtr Parent property on the BuilderContext struct. Can this be used to find the parent context?

\n

Problem

\n

There is a build warning:\n'InjectionFactory' is obsolete: 'InjectionFactory has been deprecated and will be removed in next release. Please use IUnityContainer.RegisterFactory(...) method instead.'

\n

Solution

\n

The InjectionFactory class has been deprecated. Injection factories are now registered directly with the container.\nFor example:

\n

Old code:\nContainer.RegisterType<IEncryptionProvider>(new ContainerControlledLifetimeManager(), new InjectionFactory(c => MakeEncryptionProvider(c)));

\n

New code:\nContainer.RegisterFactory<IEncryptionProvider>(c => MakeEncryptionProvider(c), new ContainerControlledLifetimeManager());

\n

Be Aware

\n

The public key token of the assembly has changed, so you may need to remove redundant assembly bindings from config files.

\n

For example:\nThis binding will now be ineffective, and can be removed:

\n
      <dependentAssembly>\n        <assemblyIdentity name="Unity.Abstractions" publicKeyToken="6d32ff45e0ccc69f" culture="neutral" />\n        <bindingRedirect oldVersion="0.0.0.0-3.3.0.0" newVersion="3.3.0.0" />\n      </dependentAssembly>\n
\n

Note:

\n\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PostBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PostBuildUp method to: public override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

I'm using this code to register my interfaces:

\n
Containter.RegisterType<ICustomerRepository, CustomerRepository>(new ContainerControlledLifetimeManager(), InjectionConstructor);\n
\n

But after the upgrade im getting the following error when resolving:

\n
Exception thrown: 'System.InvalidCastException' in Unity.Abstractions.dll\nUnable to cast object of type\n
\n

Solution

\n

Ok I managed to find out what I was doing wrong.\nI was reusing the same 'InjectionConstructor' for all my registrations.\nAfter replacing them with a new instance for each my problem went away.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/changelog.md","depot_name":".","document_id":"6a34c583-fac2-de3b-02e6-295347f24cec","document_version_independent_id":"f49a2693-93c2-cc77-ff66-251ae7c171be","gitcommit":"https://github.com/unitycontainer/documentation/blob/3838863b96854037a5cc56e5c9a81bf7bcdc15c5/articles/changelog.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/changelog.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/changelog.md","rawTitle":"

Upgrading Unity Container (Changelog)

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Upgrading Unity Container (Changelog)","uid":"Article.Change.Log","updated_at":"2019-04-24 10:53 PM","wordCount":1670},{"url":"/articles/design/","path":"articles/design/index.html","source_path":"articles/design.md","locale":"en-us","canonical_url":"https:///en-us/articles/design/","conceptual":"\n

Unity was designed to achieve the following goals:

\n\n

To allow maximum flexibility Unity container split into core and extension packages. Core packages implement basic IoC/DI functionality and extensions provide specific behavior such as configuration, decoration, and etc.

\n

Unity Core

\n

Unity core consists of two assemblies:

\n\n

Unity.Abstractions assembly contains all public declarations required to use the container in applications and relatively unchanged from version to version. It defines IUnityContainer interface as well as types and interfaces used to register, configure and resolve types and instances.

\n

Unity.Container assembly implements the IoC engine and exposes public members required to extend the container.

\n

Core Packages

\n

For legacy support and general convenience core library is distributed in two different forms:

\n\n

Composite package Unity

\n

This is a convenience package containing both Unity.Abstractions as well as Unity.Container assemblies. This package is distributed to support legacy applications.

\n

Independent Packages Unity.Abstractions and Unity.Container

\n

To allow easier path to upgrade and maximum decoupling between declarative part and implementation, Unity split into two assemblies: Unity.Abstractions and Unity.Container

\n

When used in libraries it allows linking to Unity.Abstractions and referencing Unity.Container only in bootstrapping project.

\n

Unity Extensions

\n

Unity project implements and distributes several extensions such as Unity.Configuration, Unity.Interception, and etc.

\n

More Information

\n

For more information about using packages inside applications see Application Design concepts with Unity.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/design.md","depot_name":".","document_id":"b362c72d-351a-f2e3-9457-72d6818c97c0","document_version_independent_id":"50caf97e-a047-7f49-3a23-3b57ba420d7b","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a49e6e6bf793ca22cb92d5313c37eea597c589a/articles/design.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/design.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/design.md","rawTitle":"

Design of Unity

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Design of Unity","uid":"Article.Unity.Design","updated_at":"2019-11-25 08:32 PM","wordCount":301},{"url":"/articles/features/","path":"articles/features/index.html","source_path":"articles/features.md","locale":"en-us","canonical_url":"https:///en-us/articles/features/","conceptual":"\n

General Features

\n\n

Setup

\n\n

Execution

\n

Initialization of existing objects (BuildUp)

\n\n

Create Instances (Resolve)

\n\n

Manages lifetime of objects

\n\n

Create child (Scoped) containers

\n\n

Extensibility

\n

Diagnostic

\n\n

Legacy

\n\n

Functionality

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/features.md","depot_name":".","document_id":"7e5161f5-b147-7283-ad4e-24b92f86aa94","document_version_independent_id":"d27ff859-57d2-8956-ce66-c2138968998c","gitcommit":"https://github.com/unitycontainer/documentation/blob/df7803bd64e560cd90a37d21d4db0bd5c1cdc503/articles/features.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/features.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/features.md","rawTitle":"

Features

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Features","uid":"Article.Unity.Features","updated_at":"2019-03-22 10:10 PM","wordCount":313},{"url":"/articles/history/","path":"articles/history/index.html","source_path":"articles/history.md","locale":"en-us","canonical_url":"https:///en-us/articles/history/","conceptual":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
YearReleaseAuthors and Contributors
October 2017Unity 5GitHub Community Site
October 2015Unity 4GitHub Community Site
April 2014Unity 3.5CodePlex Community Site
April 2013Unity 3CodePlex Community Site
Aug 2012Unity 2.1CodePlex Community Site
April 2010Unity 2.0Grigori Melnik, Bob Brumfield, Chris Tavares, Fernando Simonazzi, Nicolas Botto, Olaf Conijn, Carlos Farre, Masashi Narumoto, Rohit Sharma, Lavanya Selvaraj, Magdelene Sona, Mani Krishnaswami, Meenakshi Krishnamoorthi, Santhosh Panneerselvam, Ravindra Varman, Erik Renaud, François Tanguay, Rick Carr, Alex Homer, Dennis DeWitt, RoAnn Corbisier, Steve Elston, Nancy Michel, Patrick Lanfear, Tom Draper, Richard Burte, Jennifer Burch, Tracy Emory
October 2008Unity Application Block 1.2Grigori Melnik, Chris Tavares, Fernando Simonazzi, Vijaya Janakiraman, Carlos Farre, Dennis DeWitt, Alex Homer, Nelly Delgado, RoAnn Corbisier, Tina Burden McGrayne, Richard Burte
May 2008Unity Application Block 1.1Grigori Melnik, Scott Densmore, William Loeffler, Chris Tavares, Fernando Simonazzi, Nicolas Botto, Hanz Zhang, Carlos Farre, Naveen Guda, Pooja Parate, Pravin Pawar, Ronita Acharya, Sai Pasumarthi, Venkata Appaji Sirangi, Vijaya Janakiraman, Alex Homer, Nelly Delgado, RoAnn Corbisier, Tina Burden McGrayne
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/history.md","depot_name":".","document_id":"a4e26158-c7cf-11a1-7e12-8fa419b1f274","document_version_independent_id":"3efb1167-e235-dd99-e5dd-5db9dde70f26","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/articles/history.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/history.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/history.md","rawTitle":"

The Unity Container History

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"The Unity Container History","uid":"Article.Unity.History","updated_at":"2019-03-16 08:42 PM","wordCount":175},{"url":"/articles/installation/","path":"articles/installation/index.html","source_path":"articles/installation.md","locale":"en-us","canonical_url":"https:///en-us/articles/installation/","conceptual":"\n

Unity is designed to support a range of common scenarios for resolving instances of objects that, themselves, depend on other objects or services. However, you must first prepare your application to use Unity. The following procedure describes how to include the necessary assemblies and elements in your code.

\n

To prepare your application

\n

Before you can add Unity to your solution you need to decide if you want to reference packages individually (Abstractions, Container) or use composite Unity package.

\n

Referencing composite package

\n

Referencing single Unity package is more appropriate in case of small(ish) project, when everything is contained within one solution. Upgrading such solution is trivial with the help of NuGet Manager.

\n

Referencing individual packages

\n

Main benefit of referencing Abstractions and Container packages individually is when it is used in large project spanning multiple solutions, modules, and project files.

\n

Normally modular systems have one main application/module with boot-loader responsible for initializing environment, and number of modules loaded by it (Prism library for example). This boot loader is required to reference both Abstractions and Container packages.

\n

In such systems modules are created and distributed by various teams and departments and synchronization between these might be a challenge. This is where Unity comes in.\nAs stated elsewhere on this site Unity.Abstractions contains all declarations required by Unity to operate. Because of that modules could only reference one assembly: Unity.Abstractions

\n

This separation allows updates of patched container's engine without recompiling all the modules used in the system. Given that specifications change very infrequently and Unity.Abstractions package stays the same most of the time it provides big benefit in terms of saved development/testing time and money.

\n

Adding Unity to project

\n

Unity container is distributed via NuGet and could be added to a project with the help of NuGet manager or by executing command:

\n
Install-Package Unity\n\nor\n\nInstall-Package Unity.Abstractions\nInstall-Package Unity.Container\n
\n

If you wish to use Floating Version references it is recommended to lock in the minor and major versions and only allow patch version to slide:

\n
<PackageReference Include="Unity.Container" Version="5.9.*" />\n
\n

doing so will guarantee that no breaking change caught you of guard.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/installation.md","depot_name":".","document_id":"f2c12317-d328-78fd-cc78-8bf80690406d","document_version_independent_id":"623501b4-0f80-ff38-3a41-051d28f127a9","gitcommit":"https://github.com/unitycontainer/documentation/blob/a08c5cd38778dbc7606660e730b63c1a6800daf1/articles/installation.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/installation.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/installation.md","rawTitle":"

Adding Unity to Your Application

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Adding Unity to Your Application","uid":"Article.Unity.Install","updated_at":"2019-03-04 02:14 AM","wordCount":347},{"url":"/articles/introduction/","path":"articles/introduction/index.html","source_path":"articles/introduction.md","locale":"en-us","canonical_url":"https:///en-us/articles/introduction/","conceptual":"\n

Overview

\n

Unity Container is a full featured, general-purpose IoC container for use in any type of .NET application. It is Open Source and released under Apache 2.0 license.

\n

Unity is extensible. Anyone can write an extensions that changes the behavior of the container, or adds new capabilities. For example, the interception feature provided by Unity, which you can use to add policies to objects, is implemented as a container extension.

\n

What Does Unity Do

\n

Apart from decoupling types, components, services, and separating concerns, Unity crates and manages objects. Think of it as operator new ... on steroids.

\n\n

The Types of Objects Unity Can Create

\n

You can use the Unity container to generate instances of any object that has a public constructor (in other words, objects that you can create using the new operator). During object instantiation Unity can:

\n\n

Registering Types and Object Instances

\n

Unity can resolve any concrete, constructable reference type without registration. For example calling container.Resolve<object>() will produce an instance immediately.

\n

Registrations allow mapping between service types and implementation types. Create a blueprint of how instances instantiated, initialized, and managed. For generic types it creates internal mini factories that used to generate concrete types. Unity supports three ways of registering types:

\n

Instance registration

\n

Unity exposes a method named RegisterInstance that you can use to register existing instances with the container. The instance could be registered as concrete type, a type of the instance you would get by calling instance.GetType(), or it could be registered as any of the interfaces the instance implements. Lifetime of registered instance could be either controlled by container it is registered with or externally, in which case Unity just keeps weak reference to the object.

\n

Factory registration

\n

Method RegisterFactory provides a way to register a factory delegate Unity would call when required to provide the type.

\n

Type registration

\n

RegisterType is a method where you can instruct Unity how to create and initialize objects from scratch. You can specify:

\n\n

Managing the Lifetime of Objects

\n

Unity allows you to choose the lifetime of the objects it creates. By default, Unity creates a new instance of a type each time you resolve that type. However, you can use different lifetime managers to specify a required lifetime for resolved instances. For example, you can specify that Unity should maintain only a single instance (a singleton). It will create a new instance only if there is no existing instance. If there is an existing instance, it will return a reference to this instead. There are also other lifetime managers you can use.

\n

Specifying Values for Injection

\n

Unity allows configurations where dependencies are resolved from the container. But it also provides an easy way to configure injection of values at registration. In other words you could provide values for dependencies to be registered and used during subsequent resolutions.

\n

Unity also allows overriding of any dependency values during resolution. It could override any configured or resolved value during resolution of the type.

\n

Populating collections

\n

Unity has built-in support for resolving arrays and enumerations of types. For example it would recognize following types as collections and resolve them using proper algorithm:

\n\n

Support for deferred resolution

\n

Unity container implements strategies to allow deferred resolution of types. It has two types of deferred resolvers:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/introduction.md","depot_name":".","document_id":"edb43f99-5118-5174-37b2-f733fa1abf87","document_version_independent_id":"e3b1d344-8371-7dbc-ed8d-707d380a75d4","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a49e6e6bf793ca22cb92d5313c37eea597c589a/articles/introduction.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/introduction.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/introduction.md","rawTitle":"

Unity Container Introduction

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Container Introduction","uid":"Article.Unity.Introduction","updated_at":"2019-11-25 08:32 PM","wordCount":664},{"url":"/articles/quickstart/","path":"articles/quickstart/index.html","source_path":"articles/quickstart.md","locale":"en-us","canonical_url":"https:///en-us/articles/quickstart/","conceptual":"\n

This topic describes how to develop applications using Unity, and how to create and build instances of objects. It assumes that you familiar with dependency injection and separation of concerns concepts.

\n

The Container

\n

Unity exposes very compact API to operate the container. The most operations related to registration, resolution, and lifetime management is exposed through one interface - IUnityContainer.

\n

To start using Unity you need to create an instance of the container and get reference to IUnityContainer interface:

\n
IUnityContainer container = new UnityContainer();\n
\n

Creating instances

\n

Once container is created you could start using it immediately:

\n
IUnityContainer container = new UnityContainer();\nvar value = container.Resolve<object>();\n\n// Calling Resolve<object>() is the same as \nvalue = new object(); \n
\n

It will create any type with accessible constructor. Consider following example:

\n
// Simple class Foo\npublic class Foo\n{\n    public Foo() { }\n\n    public Foo(object obj) { }\n\n    public Foo(string id, object obj) { }\n}\n\n// Create container\nIUnityContainer container = new UnityContainer();\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(object obj)'\n
\n

Foo is a simple class with three public constructors. When Resolve<Foo>() is called, Unity will evaluate available constructors and select one with longest list of parameters it can satisfy with dependencies. It will create all required dependencies and pass them to selected constructor during initialization.

\n

In this particular case Unity will select second constructor with parameter obj of type Object. Although constructor Foo(string id, object obj) is longer, it has parameter of type String which is a primitive type. Unity can not create primitive types by itself. If you want to make these available for dependency injection you would need to register them with the container. For Unity to select third constructor Foo(string id, object obj) you need to register string instance with container:

\n
// Register string instance\ncontainer.RegisterInstance("xyz");\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(string id, object obj)'\n
\n

For more information on how Unity selects members see Member Selection

\n

Type Mapping

\n

In service oriented architecture contracts are represented by interfaces and components implement these contracts to provide services. Consider these types:

\n
// Public service contract\npublic interface IService \n{\n    // Service API\n}\n\n\n// Component implementing the contract\npublic class Component : IService\n{\n    // Some logic here\n}\n\n\n// Service consumer\npublic class Foo\n{\n    public Foo(IService service)\n    {\n        // Some logic here\n    }\n}\n
\n

In this example we have IService interface defining an API and class Component implementing that API. Type Foo is a consumer of the service and should be injected by container with an instance of the service during initialization.

\n

If you just call container.Resolve<IService>() it will throw an exception complaining that it can not create an interface of type IService. You need to register a Type Mapping to instructs Unity how to create service of type IService:

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>();\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(IService service)'\n
\n

During the resolution, when Unity will try to satisfy dependencies, it will look for a registration for each dependency and will find this mapping. It will create Component and passes it to constructor of Foo as IService.

\n

For more information see Type Mapping

\n

Lifetime

\n

By default Unity creates a new instance every time type is requested. Instances it created are not tracked or managed by the container.

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>();\n\n// Resolve IService\nvar value1 = container.Resolve<IService>();\nvar value2 = container.Resolve<IService>();\n\n// value1 and value2 are not the same\n
\n

To enable lifetime management, type needs to be registered with one of the compatible lifetime managers. Depending on registration type Unity provides three helpers:

\n\n

For example, to make IService a singleton for the entire application and create it only once you would register it like this:

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>(TypeLifetime.Singleton);\n\n// Resolve IService\nvar value1 = container.Resolve<IService>();\nvar value2 = container.Resolve<IService>();\n\n// value1 and value2 are the same instance of Component\n
\n

For more information see Lifetime Management

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/quickstart.md","depot_name":".","document_id":"1eb2a883-aa19-c5b5-593b-d6b67c1546f6","document_version_independent_id":"3c85a775-179c-fd58-72d6-437a7041a3f0","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/articles/quickstart.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/quickstart.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/quickstart.md","rawTitle":"

Using Unity in Applications

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Using Unity in Applications","uid":"Article.Unity.Using","updated_at":"2019-04-30 01:18 AM","wordCount":674},{"url":"/articles/toc.json","path":"articles/toc.json","source_path":"articles/toc.yml","locale":"en-us"},{"url":"/","path":"index.html","source_path":"index.md","locale":"en-us","canonical_url":"https:///en-us/","conceptual":"\n

Overview

\n

The Unity Container (Unity) is a lightweight, extensible dependency injection container. It facilitates building loosely coupled applications and provides developers with the following advantages:

\n\n

Issues and Contributions

\n\n

Any feedback and contributions are welcome

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/index.md","depot_name":".","document_id":"b3c1f04b-5bdb-1c10-5237-024cf382b4cc","document_version_independent_id":"a79c6ec2-6514-508d-7d8a-5afe2098424f","gitcommit":"https://github.com/unitycontainer/documentation/blob/16b05445e1104378b26179a5de654cade919d174/index.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/index.md","original_content_git_url_template":"{repo}/blob/{branch}/index.md","rawTitle":"

Welcome to Unity Container Documentation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Welcome to Unity Container Documentation","updated_at":"2019-03-16 11:50 PM","wordCount":119},{"url":"/readme/","path":"readme/index.html","source_path":"README.md","locale":"en-us","canonical_url":"https:///en-us/readme/","conceptual":"

\"Build

\n

Unity Documentation

\n

This repository hosts source files and instructions for building Unity documentation site: https://unitycontainer.github.io

\n

If you'd like to contribute documentation or report an issue please do it in this repository.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/README.md","depot_name":".","document_id":"fa044e91-957c-6e6a-c3ea-f34d2312c709","document_version_independent_id":"394d5e5a-5a94-224f-1e9d-b5f0091e3023","gitcommit":"https://github.com/unitycontainer/documentation/blob/5792a5d4ced17c39833a82a94f817173edd8b1e8/README.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/README.md","original_content_git_url_template":"{repo}/blob/{branch}/README.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Documentation","updated_at":"2019-04-24 11:00 PM","wordCount":31},{"url":"/specs/constructor/","path":"specs/constructor/index.html","source_path":"specs/constructor.md","locale":"en-us","canonical_url":"https:///en-us/specs/constructor/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/constructor.md","depot_name":".","document_id":"9126e7af-2f05-1f78-b222-208d57a3bbb1","document_version_independent_id":"4409ebf6-cdc5-f9d9-28e6-71bf0dc9ec0d","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/constructor.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/constructor.md","rawTitle":"

Constructor Invocation Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Constructor Invocation Specification","uid":"Specification.Constructor","updated_at":"2019-03-05 04:11 AM","wordCount":0},{"url":"/specs/field/","path":"specs/field/index.html","source_path":"specs/field.md","locale":"en-us","canonical_url":"https:///en-us/specs/field/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/field.md","depot_name":".","document_id":"21325644-f894-73be-1ffe-22351adaad7b","document_version_independent_id":"532ca89a-e39a-c516-ca5b-83cc77530ab6","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/field.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/field.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/field.md","rawTitle":"

Field Injection Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Field Injection Specification","uid":"Specification.Field","updated_at":"2019-03-05 04:11 AM","wordCount":0},{"url":"/specs/hierarchy/","path":"specs/hierarchy/index.html","source_path":"specs/hierarchy.md","locale":"en-us","canonical_url":"https:///en-us/specs/hierarchy/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/hierarchy.md","depot_name":".","document_id":"cf95aa64-1190-5120-381c-3c4424395527","document_version_independent_id":"defd991b-323a-be9a-4b2f-89bdff23d53f","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/hierarchy.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/hierarchy.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/hierarchy.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","updated_at":"2019-03-05 04:11 AM","wordCount":0},{"url":"/specs/method/","path":"specs/method/index.html","source_path":"specs/method.md","locale":"en-us","canonical_url":"https:///en-us/specs/method/","conceptual":"\n

Method invocation is an optional step you can add to the created object's initialization. Any accessible method could be invoked, provided Unity can satisfy all the parameters with appropriate values.

\n

Supported Methods

\n

Any accessible method of constructed type can be invoked during initialization.

\n

Multiple methods can be configured for invokation.

\n

Generic methods

\n

Only closed generic methods can be invoked during initialization.

\n

Restrictions

\n

Static methods cannot be invoked

\n

Unity does not support invocation of static methods.

\n

Methods with ref or out parameters cannot be invoked

\n

Invoking methods containing ref or out parameters is not supported.

\n

Invoking private and protected methods is not allowed

\n

Although it is technically possible to call private and protected methods of the class, Unity does not support this feature. This restriction is implemented to impose consistency with accessibility principles of C# language.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/method.md","depot_name":".","document_id":"f07424a8-34d7-92fa-61b3-a4e680ff7cbc","document_version_independent_id":"8efce70f-f741-dcef-7f20-e6b8d20c4c96","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/method.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/method.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/method.md","rawTitle":"

Method Invocation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Method Invocation","uid":"Specification.Method","updated_at":"2019-03-05 04:11 AM","wordCount":135},{"url":"/specs/property/","path":"specs/property/index.html","source_path":"specs/property.md","locale":"en-us","canonical_url":"https:///en-us/specs/property/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/property.md","depot_name":".","document_id":"339f73ff-b58d-aa2b-9b70-0699fe989112","document_version_independent_id":"4ee9895a-57be-0951-3adc-89b15a05f315","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/property.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/property.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/property.md","rawTitle":"

Property Injection Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Injection Specification","uid":"Specification.Property","updated_at":"2019-03-05 04:11 AM","wordCount":0},{"url":"/specs/specification/","path":"specs/specification/index.html","source_path":"specs/specification.md","locale":"en-us","canonical_url":"https:///en-us/specs/specification/","conceptual":"\n

1 Introduction

\n

Unity is a full featured, general-purpose container for use in any type of Microsoft® .NET Framework-based application. It provides all of the features commonly found in dependency injection implementations.

\n

In addition, Unity is extensible. You can write container extensions that change the behavior of the container, or add new capabilities. For example, the interception feature provided by Unity, which you can use to add policies to objects, is implemented as a container extension.

\n

2 Terms and Definitions

\n

2.1 Injection

\n

2.2 Dependency

\n

2.3 Contract

\n\n

2.4 Metadata

\n

2.5 Lifetime

\n

3 Workflow

\n

Setup

\n

Before container could be used it should be prepared for operation.

\n

Creating Container

\n
Root
\n
Scopes
\n

Type Contracts

\n
Implicit
\n
Mapping
\n
Explicit
\n\n

Provide Services

\n

Locate Contract

\n
Existing
\n
Hierarchical
\n
None
\n
Create Locally
\n
With the registration
\n
At the root
\n

Execute contract

\n
From lifetime manager
\n
From pipeline
\n

Manage created objects

\n

Teardown

\n

Dispose child scopes

\n

Dispose managed objects

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/specification.md","depot_name":".","document_id":"af1bdcaf-14d5-7e77-0ec5-01d6d1c40baf","document_version_independent_id":"67bda16f-dd4a-fce2-8c4b-7bf7ce6f0edc","gitcommit":"https://github.com/unitycontainer/documentation/blob/fcf3dc0a8e1438e5b0d980be1f7a8ea83ed2efdc/specs/specification.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/specification.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/specification.md","rawTitle":"

Unity Container Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Container Specification","uid":"Specification.Unity","updated_at":"2019-03-06 11:21 PM","wordCount":149},{"url":"/specs/summary/","path":"specs/summary/index.html","source_path":"specs/summary.md","locale":"en-us","canonical_url":"https:///en-us/specs/summary/","conceptual":"\n
    \n
  1. Introduction
  2. \n
  3. Terms and Definitions\n
      \n
    1. Injection
    2. \n
    3. Dependency
    4. \n
    5. Contract\n
        \n
      • Type
      • \n
      • Name
      • \n
      \n
    6. \n
    7. Metadata
    8. \n
    9. Lifetime
    10. \n
    \n
  4. \n
  5. Workflow\n
      \n
    1. Setup\n
        \n
      1. Creating Container\n
          \n
        1. Root
        2. \n
        3. Scopes
        4. \n
        \n
      2. \n
      3. Type Contracts\n
          \n
        1. Implicit
        2. \n
        3. Mapping
        4. \n
        5. Explicit\n
            \n
          • Instance
          • \n
          • Factory
          • \n
          • Type
          • \n
          \n
        6. \n
        \n
      4. \n
      \n
    2. \n
    3. Provide Services\n
        \n
      1. Locate Contract\n
          \n
        1. Existing
        2. \n
        3. Hierarchical
        4. \n
        5. None\n
            \n
          1. Create Locally
          2. \n
          3. With the registration
          4. \n
          5. At the root
          6. \n
          \n
        6. \n
        \n
      2. \n
      3. Execute contract\n
          \n
        1. From lifetime manager
        2. \n
        3. From pipeline
        4. \n
        \n
      4. \n
      \n
    4. \n
    5. Manage created objects
    6. \n
    \n
  6. \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/summary.md","depot_name":".","document_id":"ebc52faa-cf9e-bb28-e329-137befaf18c0","document_version_independent_id":"9271befb-21eb-ce4a-1048-1301c975b0d0","gitcommit":"https://github.com/unitycontainer/documentation/blob/fcf3dc0a8e1438e5b0d980be1f7a8ea83ed2efdc/specs/summary.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/summary.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/summary.md","rawTitle":"

Summary

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Summary","uid":"Specification.Summary","updated_at":"2019-03-06 11:21 PM","wordCount":50},{"url":"/specs/toc.json","path":"specs/toc.json","source_path":"specs/toc.yml","locale":"en-us"},{"url":"/specs/workflow/","path":"specs/workflow/index.html","source_path":"specs/workflow.md","locale":"en-us","canonical_url":"https:///en-us/specs/workflow/","conceptual":"\n

Before container could be used it should be prepared for operation.

\n

Creating Container

\n
Root
\n
Scopes
\n

Type Contracts

\n
Implicit
\n
Mapping
\n
Explicit
\n\n

Provide Services

\n

Locate Contract

\n
Existing
\n
Hierarchical
\n
None
\n
Create Locally
\n
With the registration
\n
At the root
\n

Execute contract

\n
From lifetime manager
\n
From pipeline
\n

Manage created objects

\n

Teardown

\n

Dispose child scopes

\n

Dispose managed objects

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/workflow.md","depot_name":".","document_id":"92912b1a-fce7-7872-3d33-3afd56ebc1eb","document_version_independent_id":"a7106ca5-04de-eed2-29a3-e2b877b19db9","gitcommit":"https://github.com/unitycontainer/documentation/blob/ddaee7af1f7438438cc8e0af39906104a6afe004/specs/workflow.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/workflow.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/workflow.md","rawTitle":"

Setup

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Workflow","uid":"Specification.Workflow","updated_at":"2019-03-06 03:02 AM","wordCount":55},{"url":"/toc.json","path":"toc.json","source_path":"toc.yml","locale":"en-us"},{"url":"/tutorials/annotation/annotation/","path":"tutorials/annotation/annotation/index.html","source_path":"tutorials/Annotation/annotation.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/annotation/annotation/","conceptual":"\n

One of the most useful and powerful techniques when using Unity is to take advantage of dependency injection for the parameters of class constructors and methods, and for the values of fields and properties. This approach allows you to resolve and populate the entire hierarchy of objects used in your application based on type registrations and mappings defined in the container, with the subsequent advantages this offers.

\n

You can specify constructor, field, property, and method call injection information in configuration or by adding registrations to the container at run time. You can also apply attributes to members of your classes to indicate injection targets. When you resolve these classes through the container, Unity will generate instances of the dependent objects and wire up the injection targets with these instances.

\n

Using Injection Attributes

\n

Normally, Unity performs selection of the constructor automatically by choosing the most complex constructor it can satisfy with dependencies and populating these parameters with resolved values when it constructs the object. In some cases, for various reasons, the constructor could not be selected successfully and container may throw an exception.

\n

Constructor Annotation

\n

To disambiguate selection or to override automatic behavior you could specify which constructor Unity should use to construct the object by marking it with InjectionConstructor attribute.

\n

Member Annotation

\n

Property, field, and method call injections do not occur automatically unless registered with appropriate injection members at run time. To enable automatic member injection for types you can add attributes to the members of your classes to force injection of dependent objects when the target class is resolved.

\n

Required and Optional

\n

Fields, Properties, and Parameters could be annotated with either Dependency or OptionalDependency attributes to indicate that these require values to be injected. For annotating methods you wish to be called during initialization you could use InjectionMethod

\n

For more information, see:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/annotation.md","depot_name":".","document_id":"29642b10-fdb8-4b72-8854-aa787580a1f2","document_version_independent_id":"49daebef-832d-2c5b-99f9-0b1b2cc00ffb","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/tutorials/Annotation/annotation.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/annotation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/annotation.md","rawTitle":"

Attributed Injection Model

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Attributed Injection Model","uid":"Tutorial.Annotation","updated_at":"2019-03-16 08:42 PM","wordCount":327},{"url":"/tutorials/annotation/constructor/","path":"tutorials/annotation/constructor/index.html","source_path":"tutorials/Annotation/constructor.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/annotation/constructor/","conceptual":"\n

To select constructors you create through the Unity container, you can use the following three techniques:

\n\n

Annotated Constructor Injection

\n

Constructor Injection with Attribute Annotation allows you to apply attributes to the class' constructor designating it for dependency injection. When creating the class, Unity will always (unless explicitly overwritten in Registration) use that constructor. You only need to use this technique when there is more than one constructor in the target type.

\n

Annotating a Constructor

\n

When a target class contains more than one constructor and the automatic algorithm does not provide desired selection, you may use the InjectionConstructor attribute to specify the constructor you wish to use for injection.

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this example type Service contains four public constructors. Three of these constructors have one parameter each. A Type like this creates an ambiguity that Unity could not resolve by itself.

\n
\n
WARNING
\n

During resolution, the container will pick the first constructor it could satisfy with dependencies and will use it. In the example above, it could be any of the three constructors with one parameter.

\n
\n

The container is not trying to validate all available contractors during normal execution.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructors.

\n
\n

Normally, Unity would select the third constructor with three parameters, but by annotating the second constructor with the attribute you force Unity to use it during resolution.

\n

Multiple Constructor Annotations

\n

Annotating multiple constructors with injection parameters is not recommended. Unity is not guaranteed to process constructors in certain order. If multiple constructors are annotated, behavior might change from version to version.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructor annotations.

\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/constructor.md","depot_name":".","document_id":"78a4a31f-8f9d-b1b8-c4d8-5ee0709c8dc8","document_version_independent_id":"f6ecaf01-9c4e-2b5e-7627-55221cde4f1c","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Annotation/constructor.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/constructor.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating Type for Constructor Injection","uid":"Tutorial.Annotation.Constructor","updated_at":"2019-04-05 01:56 AM","wordCount":385},{"url":"/tutorials/annotation/field/","path":"tutorials/annotation/field/index.html","source_path":"tutorials/Annotation/field.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/annotation/field/","conceptual":"\n

By default Unity does not inject any fields of the classes it creates.

\n

To enable field injection you need to configure Unity during registration of annotate appropriate fields with dependency attributes. Unity supports two types of field injection:

\n\n

Field injection

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/field.md","depot_name":".","document_id":"3e5f244d-d6a9-5148-d40d-89c6eb8569f6","document_version_independent_id":"fa6bed51-64f2-74c1-6c10-b4352c0c8e58","gitcommit":"https://github.com/unitycontainer/documentation/blob/ddaee7af1f7438438cc8e0af39906104a6afe004/tutorials/Annotation/field.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/field.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/field.md","rawTitle":"

Annotating types for Field injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating types for Field injection","uid":"Tutorial.Annotation.Field","updated_at":"2019-03-06 03:02 AM","wordCount":63},{"url":"/tutorials/annotation/method/","path":"tutorials/annotation/method/index.html","source_path":"tutorials/Annotation/method.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/annotation/method/","conceptual":"\n

Method invocation is an optional step you can add to the created object's initialization. Any accessible method could be invoked, provided Unity can satisfy all the parameters with appropriate values.

\n

Method Invocation

\n

To enable method invocation during object initialization you could apply InjectionMethod attribute to the method you want to be executed.

\n
public class Service\n{\n    ...\n    private void PreInitialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void Initialize(...)\n    {\n        ...\n    }\n\n    public void PostInitialize(...)\n    {\n        ...\n    }\n}\n
\n

In the example above, attribute InjectionMethod is applied to method Initialize(...) and the method will be executed immediately after the object is created.

\n

Multiple Method Invocation

\n

Unity does not place any restrictions on how many methods of the class will be invoked during the initialization. You could mark any and all methods with the attribute and Unity will execute them all:

\n
public class Service\n{\n    ...\n\n    [InjectionMethod]\n    public void PreInitialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void Initialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void PostInitialize(...)\n    {\n        ...\n    }\n}\n
\n

Restrictions

\n

Static methods cannot be invoked

\n

Unity does not support invocation of static methods. Static methods annotated with InjectionMethod attribute will be ignored. If Unity Diagnostic is enabled, the container will throw an exception when it encounters such an annotation.

\n

Methods with ref or out parameters cannot be invoked

\n

Methods containing ref or out parameters cannot be invoked during initialization. The container will throw an exception if encountered these.

\n
public class Service\n{\n    [InjectionMethod]  // Error\n    public void Method1(ref object refObject)\n    {\n        ...\n    }\n    ...\n\n    [InjectionMethod]  // Error\n    public void Method2(out object outObject)\n    {\n        ...\n    }\n}\n
\n

In the example above neither Method1(ref object refObject) nor Method2(out object outObject) should be annotated for invocation. Doing so will create an error condition.

\n

Invoking private and protected methods is not allowed

\n

Although it is technically possible to call private and protected methods of the class, Unity does not support this feature. This restriction is implemented to impose consistency with accessibility principles of C# language.

\n

Unity will ignore attributes on non-accessible methods.

\n
public class Service\n{\n    ...\n\n    [InjectionMethod]  // Error\n    protected void ProtectedMethod(...)\n    {\n        ...\n    }\n}\n
\n

In the example above method ProtectedMethod(...) will not be called.

\n

If Unity Diagnostic is enabled, the container will throw an exception when it encounters this condition.

\n

For more information see Unity Diagnostic.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/method.md","depot_name":".","document_id":"5ae531df-dce4-5f36-9c71-e384a74e77dc","document_version_independent_id":"f8c80055-fe8e-50ca-9e17-07b04982b1ac","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Annotation/method.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/method.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/method.md","rawTitle":"

Annotating types for Method invocation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating types for Method invocation","uid":"Tutorial.Annotation.Method","updated_at":"2019-04-05 01:56 AM","wordCount":368},{"url":"/tutorials/annotation/parameter/","path":"tutorials/annotation/parameter/index.html","source_path":"tutorials/Annotation/parameter.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/annotation/parameter/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/parameter.md","depot_name":".","document_id":"f85b065f-2cd0-8da7-c090-a2590a7b6682","document_version_independent_id":"5d0e49be-3a43-6aaf-47d6-fb8c7fed5bc9","gitcommit":"https://github.com/unitycontainer/documentation/blob/3ce1397a639bc01a45da7e6143e5be8bb2e67818/tutorials/Annotation/parameter.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/parameter.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/parameter.md","rawTitle":"

Annotating Constructors and Methods for Parameter Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating Constructors and Methods for Parameter Injection","uid":"Tutorial.Annotation.Parameter","updated_at":"2019-03-04 04:07 AM","wordCount":0},{"url":"/tutorials/annotation/property/","path":"tutorials/annotation/property/index.html","source_path":"tutorials/Annotation/property.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/annotation/property/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/property.md","depot_name":".","document_id":"6814e60e-6ade-f695-88c6-035d214a78dd","document_version_independent_id":"fbdced5a-ca01-4bd7-b80b-69048ade93ef","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/tutorials/Annotation/property.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/property.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/property.md","rawTitle":"

Annotating Objects for Property Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Injection Annotation","uid":"Tutorial.Annotation.Property","updated_at":"2019-03-16 08:42 PM","wordCount":0},{"url":"/tutorials/composition/buildup/buildup/","path":"tutorials/composition/buildup/buildup/index.html","source_path":"tutorials/Composition/BuildUp/buildup.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/buildup/buildup/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/BuildUp/buildup.md","depot_name":".","document_id":"ac5e69d2-90ac-2ebc-2061-3bd40761c5ed","document_version_independent_id":"8b0dbe0c-bfb5-b68b-f782-5702f0b90f85","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/BuildUp/buildup.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/BuildUp/buildup.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/BuildUp/buildup.md","rawTitle":"

Build Up

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Object Build Up","uid":"Tutorial.BuildUp","updated_at":"2019-04-30 12:00 AM","wordCount":0},{"url":"/tutorials/composition/collections/","path":"tutorials/composition/collections/index.html","source_path":"tutorials/Composition/collections.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/collections/","conceptual":"\n

Unity supports creating multiple registration of the same type by adding a name to the registration. It is useful if you want to register different services of the same type. For example, if you have multiple printers and you want them all to be available to consumers you would register them like this:

\n
container.RegisterInstance<IPrinter>(printer); // default printer\ncontainer.RegisterInstance<IPrinter>(printer1,   "Office Printer");\ncontainer.RegisterInstance<IPrinter>(printer2,   "Printer at the deli on the street corner");\ncontainer.RegisterType<IPrinter, NeighborPrinter>("Office printer near me");\n
\n

When you want to obtain a list of all the registered objects of a specific type, IPrinter in this case, you can use the array T[] or IEnumerable<T> of that type. The difference between array and enumerable resolution is that array only returns named (nondefault name) registrations where enumerable always returns all, named and unnamed registrations.

\n

Resolving array T[]

\n

When resolving array of a type, Unity will return an array containing only types registered with nondefault (other than null) names. In example above call to Resolve will return array of only three elements:

\n
IPrinter[] printers = container.Resolve<IPrinter[]>();\nAssert(3 == printers.Length)\n
\n

Instance printer will not be returned because it was registered with no name.

\n

Resolving IEnumerable<T>

\n

IEnumerable<T> returns an enumerable containing all registrations of type T, including default (with name null) registrations. In example above it will return all four registrations:

\n
IPrinter[] printers = container.Resolve<IEnumerable<IPrinter>>();\nAssert(4 == printers.Count())\n
\n

Resolving List<T> of types

\n

Unity does not have any special provisions to support List<T> but because List type's longest exposed constructor is

\n
public List(IEnumerable<T> items)\n
\n

Unity is able to resolve List<T>. Consider this example:

\n
var printers = container.Resolve<List<IPrinter>>();\nAssert(4 == printers.Count)\n
\n

Unity creates type List<IPrinter> and during initialization selects longest constructor it can satisfy with dependencies (List(IEnumerable<T> items)). It crates the enumeration and passes it to List constructor. Resulting instance is a list of all registrations of that type.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/collections.md","depot_name":".","document_id":"0884b99e-0a93-edc3-f12f-ad8b3a65a047","document_version_independent_id":"e03b645c-3edf-6832-3486-73089b8efedc","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/collections.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/collections.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/collections.md","rawTitle":"

Resolving collections of Objects of a Particular Type

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Collections","uid":"Tutorial.Collections","updated_at":"2019-04-30 12:00 AM","wordCount":300},{"url":"/tutorials/composition/composition/","path":"tutorials/composition/composition/index.html","source_path":"tutorials/Composition/composition.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/composition/","conceptual":"\n

Composition is a general term describing creation and initialization of an object. During composition an object is created and initialized with all of its dependencies and initialization methods.

\n

Since each dependency might have its own dependencies entire dependency graph has to be created and each node has to be initialized in order of priority.

\n

The Unity container supports two types of composition:

\n

Resolution

\n

Resolution is a process where an object is built from scratch. In other words, the container is allocating the memory for an object, calls a constructor with all of its dependencies and performs all necessary initialization required by the type. For more information see Object Resolution

\n

Building Up

\n

Building up is a process where the container does not create an object but initializes already created object. This is useful when an object is part of an infrastructure and author does not have access or control of how these are created.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/composition.md","depot_name":".","document_id":"1457e229-39bc-a777-76a7-92e4438da74e","document_version_independent_id":"31268c2a-a9a6-f73d-3573-58f93512e7b2","gitcommit":"https://github.com/unitycontainer/documentation/blob/2b566771060defc33c61a481b10ffc9c8786eba9/tutorials/Composition/composition.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/composition.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/composition.md","rawTitle":"

Composition

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Composition","uid":"Tutorial.Composition","updated_at":"2019-07-31 11:26 AM","wordCount":153},{"url":"/tutorials/composition/generics/deferred/","path":"tutorials/composition/generics/deferred/index.html","source_path":"tutorials/Composition/Generics/deferred.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/generics/deferred/","conceptual":"\n

Unity provides a technique to facilitate holding a reference to an object you need, but do not want to construct right away. You wish to defer resolution of the object. Instead of creating a factory for the type and injecting the factory into your class, then using it to create the type you want you can use the .NET standard type Func (C#) or Func(Of T) (Visual Basic) with the Resolve method. This returns a delegate that, when invoked, calls into the container and returns an instance of the specified type (in this case, T).

\n

You can even create a delegate in this way without creating a registration or mapping for the specified type in the container if you wish. Because the resolve action only takes place when you invoke the delegate, subsequent registrations added to the container are available when the target object is resolved. This means that you can manipulate the registrations and mappings in the container at any point before you resolve the target object (although you can obviously register the type before you create the delegate if you prefer).

\n

For example, you can create a delegate for a component named MyClass, and then register a mapping for it and perform deferred resolution when required using the following code.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create a delegate for the IMyClass interface type\nvar resolver = myContainer.Resolve<Func<IMyClass>>();\n\n// ... other code here...\n\n// Register a mapping for the IMyClass interface to the MyClass type\nmyContainer.RegisterType<IMyClass, MyClass>();\n\n// Resolve the mapped target object\nIMyClass myClassInstance = resolver();\n
\n

You can use this approach when you resolve the type using the Resolve method, or you can specify the delegate when you configure constructor, property setter, or method call injection. You can also use named (non-default) registrations by including the registration name in the call to the Resolve method and the RegisterType method, just as you would when using these methods for non-deferred resolution.

\n

In addition, you can use this feature to perform deferred resolution of multiple named registrations, as an alternative to using the ResolveAll method. For example, if you have multiple named registrations for the IMyClass interface to suitable concrete types, you can obtain a collection of the resolved types. The following code illustrates this.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create an IEnumerable resolver for the IMyClass interface type\nvar resolver = myContainer.Resolve<Func<IEnumerable<IMyClass>>>();\n\n// ... other code here...\n\n// Register mappings for the IMyClass interface to appropriate concrete types\nmyContainer.RegisterType<IMyClass, FirstClass>("First");\nmyContainer.RegisterType<IMyClass, SecondClass>("Second");\nmyContainer.RegisterType<IMyClass, ThidClass>("Third");\n\n// Resolve a collection of the mapped target objects\nIEnumerable<IMyClass> myClassInstances = resolver();\n
\n

You can also use the deferred resolver to resolve instance registrations. For example, the following code shows how you can resolve an IEnumerable collection of string values.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create an IEnumerable resolver for string instance registrations\nvar resolver = myContainer.Resolve<Func<IEnumerable<string>>>();\n\n// ... other code here...\n\n// Register mappings for the IMyClass interface to appropriate concrete types\nmyContainer.RegisterInstance("one", "FirstString");\nmyContainer.RegisterInstance("two", "SecondString");\nmyContainer.RegisterInstance("three", "ThirdString");\n\n// Resolve a collection of the strings\nIEnumerable<string> myStringInstances = resolver();\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/deferred.md","depot_name":".","document_id":"a1f92544-a7e3-3af7-c90f-d602719ebcfa","document_version_independent_id":"ec0143ad-09ff-c2bb-f179-d04c151dfa62","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Generics/deferred.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/deferred.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/deferred.md","rawTitle":"

Deferring the Resolution of Objects

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Deferred Resolution","uid":"Tutorial.Deferred","updated_at":"2019-04-30 12:00 AM","wordCount":520},{"url":"/tutorials/composition/generics/generics/","path":"tutorials/composition/generics/generics/index.html","source_path":"tutorials/Composition/Generics/generics.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/generics/generics/","conceptual":"\n

You resolve generic types in much the same way as you resolve non-generic types. The primary difference is with unbound types. The specification of the type arguments depend on the definition of the mapped type or the type you are resolving:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/generics.md","depot_name":".","document_id":"a92a9f46-f50f-2f68-4bb8-5e7652680910","document_version_independent_id":"4e0f56a0-6763-4bbf-372b-b019b3d8caa4","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Generics/generics.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/generics.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/generics.md","rawTitle":"

Generic Types

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Generics","uid":"Tutorial.Generics","updated_at":"2019-04-30 12:00 AM","wordCount":174},{"url":"/tutorials/composition/generics/lazy/","path":"tutorials/composition/generics/lazy/index.html","source_path":"tutorials/Composition/Generics/lazy.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/generics/lazy/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/lazy.md","depot_name":".","document_id":"9b5a7104-d6da-4330-733e-273254cf63cf","document_version_independent_id":"4188df6c-93dd-f51a-63be-280e09e8beda","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Generics/lazy.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/lazy.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/lazy.md","rawTitle":"

Lazy

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Lazy","uid":"Tutorial.Lazy","updated_at":"2019-04-30 01:18 AM","wordCount":0},{"url":"/tutorials/composition/generics/metadata/","path":"tutorials/composition/generics/metadata/index.html","source_path":"tutorials/Composition/Generics/metadata.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/generics/metadata/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/metadata.md","depot_name":".","document_id":"ac43e2ab-6d9a-2ed0-8c89-80b21278762e","document_version_independent_id":"f5d1d529-9ad8-fb0c-2f65-e9f4c3c42474","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Generics/metadata.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/metadata.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/metadata.md","rawTitle":"

Generic Metadata

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Metadata","uid":"Tutorial.Generics.Metadata","updated_at":"2019-04-30 12:00 AM","wordCount":0},{"url":"/tutorials/composition/mapping/generic/","path":"tutorials/composition/mapping/generic/index.html","source_path":"tutorials/Composition/Mapping/generic.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/mapping/generic/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/generic.md","depot_name":".","document_id":"418b01e6-2886-a05c-94d3-2695d8234782","document_version_independent_id":"c730bf6f-c479-0b44-0b51-e7754d3759c9","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Mapping/generic.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/generic.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Mapping/generic.md","rawTitle":"

Generic Type Mapping

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Generic Type Mapping","uid":"Tutorial.Mapping.Generic","updated_at":"2019-04-30 01:18 AM","wordCount":0},{"url":"/tutorials/composition/mapping/implementation/","path":"tutorials/composition/mapping/implementation/index.html","source_path":"tutorials/Composition/Mapping/implementation.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/mapping/implementation/","conceptual":"\n

Service to Implementation mapping is done during the service registration.

\n

The Service Itself

\n

The simplest type of registration is when service is registered by its own type. For Type and Instance registration you could do so by simply registering the type or the instance:

\n
container.RegisterType<Foo>();\ncontainer.RegisterInstance(new Foo());\n
\n

A factory has to specify type it is registered under:

\n
container.RegisterFactory<Foo>((c, t, n) => new Foo());\n
\n

Mapping Contract to Implementation

\n

When you map Registered type to implementation type you specify an service type first and implementation type second:

\n
container.RegisterType<IFoo, Foo>();\ncontainer.RegisterInstance<IFoo>(new Foo());\n
\n

In case of factory registration the container does not care how it is implemented by the factory, all it cares is how it is registered:

\n
container.RegisterFactory<IFoo>((c, t, n) => new Foo());\n
\n

Building and Mapping to Implementation

\n

Mapping allows redirection to existing registrations and services as well as building new instances of implementation types.

\n

Mapping to Existing Service

\n

The Unity container supports a scenario where a mapping does not crate type itself but rather references existing service registered with the container. Consider the following:

\n
public class Foo : IFoo1, IFoo2\n{\n    public Foo()\n    {\n    }\n\n    public Foo(object _)\n    {\n    }\n}\n\ncontainer.RegisterInstance<IFoo>(new Foo(), InstanceLifetime.Singleton);\n\ncontainer.RegisterType<IFoo1, Foo>();\n
\n

The container has a registration for type Foo. When interface IFoo1 is mapped to Foo it instructs the container to resolve the default implementation for the type Foo. Because the mapping does not provide any instructions how the type should be built, the default implementation, or existing registration should be used.

\n

So, when the container will be resolving IFoo1 it will first check if Foo is already registered and will used the registration to satisfy the request.

\n

If a mapping references non existing service the container will try to build the service from the implementation type.

\n

Building Implementation Type

\n

If the implementation type points to no existing registration or if an instance has to be created using certain rules, the container will create a new, independent pipeline and execute. So if you register IFoo2 like this:

\n
container.RegisterType<IFoo2, Foo>(Invoke.Constructor());\n
\n

the Unity container will not redirect to Foo but will create a new instance of Foo and call default constructor.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/implementation.md","depot_name":".","document_id":"67e38e86-49da-e80c-aa14-d18939f99491","document_version_independent_id":"6916f8de-fba9-4c35-b3b8-6cc40a8e8412","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Mapping/implementation.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/implementation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Mapping/implementation.md","rawTitle":"

Service to Implementation Mapping

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Service to Implementation Mapping","uid":"Tutorial.Mapping.Implementation","updated_at":"2019-04-30 01:18 AM","wordCount":351},{"url":"/tutorials/composition/mapping/mapping/","path":"tutorials/composition/mapping/mapping/index.html","source_path":"tutorials/Composition/Mapping/mapping.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/mapping/mapping/","conceptual":"\n

In service oriented architecture components expose services through well known contracts. In C# terms the contracts are the abstract classes or interfaces these components and services are exposing. So when we say service type, in most of the cases, we mean the interfaces implementing the contract. And the components are called Implementation types.

\n

Unity allows to publish these components and make all the contracts they implement available to clients to consume. This publishing and "advertisement" is done by registering types and interfaces (contracts) associated with components.

\n

Registration Type

\n

Registration type is the type of the 'Contract' this service provides. It could be the Type of the service itself of any of the base types it implements.

\n

Service To Implementation Mapping

\n

The mapping is done when service is registered. Any type of registration (Type, Factory, Instance) allow to associate a service with different contracts.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/mapping.md","depot_name":".","document_id":"114f92db-344c-abca-7962-b9478c9610ee","document_version_independent_id":"ad129655-e31c-3d02-6062-cb5934ae425f","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Mapping/mapping.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/mapping.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Mapping/mapping.md","rawTitle":"

Type Mapping

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Type Mapping","uid":"Tutorial.Mapping","updated_at":"2019-04-30 01:18 AM","wordCount":143},{"url":"/tutorials/composition/overrides/dependency/","path":"tutorials/composition/overrides/dependency/index.html","source_path":"tutorials/Composition/Overrides/dependency.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/overrides/dependency/","conceptual":"\n

Dependency override is a special kind of override. It does not target any members or parameters. Instead, it overrides a contract that the container would have resolved when requested. In other words, when the dependency is being resolved from the container, if the contract matches, it will provide that value instead.

\n

Injected Members and Dependency overrides

\n

There are two types of dependency injection the Unity container supports:

\n\n

To understand how Dependency Override works you need to remember, it only overrides resolved values.

\n

Injected Values

\n

Values are injected during Type registration. At that time you provide instructions on how to initialize the Type and its members. The members injected with values via Injection Members will not be affected by the Dependency Override.

\n

Resolved Values

\n

All the dependencies that are not injected with values, or injected with resolve redirection are potential targets for the override. Anything that asks the container to resolve a value can be Dependency Overridden.

\n

Overriding dependencies

\n

Dependency Override enables you to specify an override for the specified dependency type contract. It, enables you to pass in an object that will be returned as a dependency, instead of the one resolved from the container.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/dependency.md","depot_name":".","document_id":"a57a3be5-47d3-51c5-f36f-7bb1a351d43f","document_version_independent_id":"7e8b2795-7571-1855-6237-b30f66013643","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/dependency.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/dependency.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/dependency.md","rawTitle":"

Dependency Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Dependency Override","uid":"Tutorial.Resolution.Override.Dependency","updated_at":"2019-04-30 12:00 AM","wordCount":199},{"url":"/tutorials/composition/overrides/field/","path":"tutorials/composition/overrides/field/index.html","source_path":"tutorials/Composition/Overrides/field.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/overrides/field/","conceptual":"\n

FieldOverride enables you to override the value for a specified field. Only the field value is overridden, not the properties selected. Its behavior is the same as ParameterOverride. The use of the OnType method enables you to specify a type to constrain the override to.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/field.md","depot_name":".","document_id":"7054362e-ab65-8ef6-cce1-7a89caee8ea0","document_version_independent_id":"f4d61c91-c65f-610e-5706-372bc1405786","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/field.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/field.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/field.md","rawTitle":"

Field Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Field Overrides","uid":"Tutorial.Resolution.Override.Field","updated_at":"2019-04-30 12:00 AM","wordCount":45},{"url":"/tutorials/composition/overrides/override/","path":"tutorials/composition/overrides/override/index.html","source_path":"tutorials/Composition/Overrides/override.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/overrides/override/","conceptual":"\n

The parameter and dependency overrides, ParameterOverride and DependencyOverride, are ResolverOverride implementations that provide support for overriding the registration information for resolving instances of types. When you call the Resolve method, these classes enable you to override values specified when the type was registered, such as by a RegisterType or RegisterInstance statement. In effect, RegisterType supplied values are overridden by Resolve supplied values.

\n

Use ParameterOverride to override the specified constructor parameter or parameters. The override applies everywhere the parameter appears unless you use OnType to constrain the override to a specified type. Since the purpose of overrides is to affect the resolution of dependencies for all relevant created objects, not just the object requested in the call to Resolve, unconstrained overrides can produce errors if there are unconstrained ParameterOverride parameters that match parameters with the same name but different types on the selected constructors for objects created in a given resolve operation.

\n

Use PropertyOverride to override the value of the specified property or properties. The override applies everywhere the property appears unless you use OnType to constrain the override to a specified type.

\n

Use DependencyOverride to override the value injected whenever there is a dependency of the given type. DependencyOverride overrides all instances where the type matches. Both parameter overrides and dependency overrides support generic types and multiple overrides.

\n

Overrides work with the constructor that is selected for the type, by attribute or configuration. If the constructor to be used is not identified with an attribute or explicit container configuration, then the default behavior is that the constructor with the most parameters will be used.

\n

A parameter and property override never affects what element gets selected. They only control the value of the specified parameter or property. You do not change which constructor is called with an override, and you do not change which properties get set with an override.

\n\n

\"Resolver

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/override.md","depot_name":".","document_id":"c6321cd0-ca7d-d962-a1d6-cafd2304b46d","document_version_independent_id":"d81b6079-c1d9-1fb6-de0e-275b2b70cf4a","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/override.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/override.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/override.md","rawTitle":"

Overriding dependencies during resolution

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Resolution Override","uid":"Tutorial.Resolution.Override","updated_at":"2019-04-30 12:00 AM","wordCount":317},{"url":"/tutorials/composition/overrides/parameter/","path":"tutorials/composition/overrides/parameter/index.html","source_path":"tutorials/Composition/Overrides/parameter.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/overrides/parameter/","conceptual":"\n

Unity enables you to pass in values for parameter dependencies to override a parameter passed to a given constructor or method. Only the parameter value is overridden, not the constructor or method selection.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/parameter.md","depot_name":".","document_id":"ba453611-c12b-550a-6561-07b81942e916","document_version_independent_id":"8aeb5e95-0a66-e52d-6553-af3a0ae20166","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/parameter.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/parameter.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/parameter.md","rawTitle":"

Parameter Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Parameter Override","uid":"Tutorial.Resolution.Override.Parameter","updated_at":"2019-04-30 12:00 AM","wordCount":33},{"url":"/tutorials/composition/overrides/property/","path":"tutorials/composition/overrides/property/index.html","source_path":"tutorials/Composition/Overrides/property.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/overrides/property/","conceptual":"\n

PropertyOverride enables you to override the value for a specified property. Only the property value is overridden, not the properties selected. Its behavior is the same as ParameterOverride. The use of the OnType method enables you to specify a type to constrain the override to.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/property.md","depot_name":".","document_id":"9bee940d-3cf7-23a1-fc98-ed62d6797ee2","document_version_independent_id":"a616e5e2-d7c1-7f70-d255-96f921f486df","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/property.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/property.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/property.md","rawTitle":"

Property Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Override","uid":"Tutorial.Resolution.Override.Property","updated_at":"2019-04-30 12:00 AM","wordCount":45},{"url":"/tutorials/composition/resolution/resolution/","path":"tutorials/composition/resolution/resolution/index.html","source_path":"tutorials/Composition/Resolution/resolution.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/resolution/resolution/","conceptual":"\n

There are types you can create immediately from the container and there are types that require registration. Generally any primitive type would require registration and all classes are available immediately.

\n

You can use the Unity container to generate instances of any object that has a public constructor (in other words, objects that you can create using the new operator). When you call the Resolve method and specify the type that is not registered, the container simply generates and returns an instance of that type. However, the only time that this is realistically practical is when the object you are generating does not have ambiguities Unity could not resolve or contains dependency attributes that the container will use to inject dependent objects into the requested object.

\n

The Unity container identifies type registrations and type mappings in the container using a type and, optionally, a name. The type is an interface or a class (usually an interface or base class) that the desired concrete object type implements or inherits. This identifies the mapping so that the container can retrieve the correct object type in response to a call to the Resolve method. Where there is more than one mapping for the same type, the optional name differentiates these mappings and allows code to specify which of the mappings for that type to use.

\n

The provision of both generic and non-generic overloads of many of the Unity container methods ensures that Unity can be used in languages that do not support generics. You can use either approach (the generic or the non-generic overloads) in your code and mix them as required.

\n

The following topics describe how you can resolve objects using the Resolve or BuildUp methods:

\n\n

For more information about how you can configure Unity with type registrations and mappings, see Registration.

\n

For more information about how you can perform dependency injection on existing object instances, see Using BuildUp to Wire Up Objects Not Created by the Container.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/resolution.md","depot_name":".","document_id":"1dde0392-5274-483b-f246-6a10afef0c27","document_version_independent_id":"09d0cec4-ec13-4b5a-a4d6-a94c867fe156","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Resolution/resolution.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/resolution.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Resolution/resolution.md","rawTitle":"

Resolving Objects

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Object Resolution","uid":"Tutorial.Resolution","updated_at":"2019-04-30 12:00 AM","wordCount":347},{"url":"/tutorials/composition/resolution/type/","path":"tutorials/composition/resolution/type/index.html","source_path":"tutorials/Composition/Resolution/type.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/resolution/type/","conceptual":"\n

Unity provides a method named Resolve that you can use to resolve an object by type, and optionally by providing a registration name. Registrations that do not specify a name are referred to as default registrations. This topic describes how to use the Resolve method to resolve types and mappings registered as default registrations.

\n

The Resolve Method Overloads for Default Registrations

\n

The following table describes the overloads of the Resolve method that return instances of objects based on the default registrations and mappings with the container. The API for the Unity container contains both generic and non-generic overloads of this method so that you can use it with languages that do not support the generics syntax.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MethodDescription
Resolve<T>()Returns an instance of the type registered with the default name as the type T.
Resolve(Type t)Returns an instance of the default type registered with the container as the type t.
Resolve<T>(string name)Returns an instance of the type registered with the container as the type T and with the specified name. Names are case sensitive.
Resolve(Type t, string name)Returns an instance of the type registered with the container as the type t and with the specified name. Names are case sensitive.
\n

Using the Resolve Method with Default Registrations

\n

The following examples show how you can use the Resolve method to create or obtain a reference to an object defined in the container configuration. Typically you will register a type mapping between an interface and a concrete type that implements it, or between a base class and a concrete type that inherits it. The examples use the run-time methods of the container to register the types it will resolve.

\n

Resolving Types Registered as Interfaces

\n

The following code registers a mapping for an interface named IService and specifies that the container should return an instance of the CustomerService class (which implements the IService interface). In this case, the type IService identifies the registration type. Code that requests an instance of the type IService receives an instance of the CustomerService class. The following example uses the generic overloads of the container methods.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\n\nvar instance = container.Resolve<IService>();\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\n\nvar instance = (IService)container.Resolve(typeof(IMyService));\n
\n

Resolving Types Registered as Base Classes

\n

When you need to register a mapping for a base class or other object type (instead of an interface), you use the overloads of the RegisterType and Resolve methods that accept object type names. The following examples show the use of the overloads of the RegisterType and Resolve methods that accept object type names as the registration identifier.

\n

The following code registers a mapping for an object named MyBaseService and specifies that the container should return an instance of the CustomerService class (which inherits from the MyBaseService class). In this case, the type MyBaseService identifies the registration. Code that requests an instance of the type MyBaseService receives an instance of the CustomerService class.

\n
IUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<MyBaseService, CustomerService>();\n\nMyBaseService myServiceInstance = myContainer.Resolve<MyBaseService>();\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType(typeof(MyBaseService), typeof(CustomerService));\n\nMyBaseService myServiceInstance = (MyBaseService)myContainer.Resolve(typeof(MyBaseService));\n
\n

Using the Resolve Method with Named Registrations

\n

If you need to create multiple registrations for the same type, you can specify a name to differentiate each registration. Then, to retrieve an object of the appropriate type, you specify the name and the registered type. Following examples demonstrate the technique:

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\ncontainer.RegisterType<IService, CompanyService>("name");\ncontainer.RegisterType<IService, ExternalService>("other name");\n\nvar instance = container.Resolve<IService>("name");\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, EmailService>();\ncontainer.RegisterType<IService, LDAPService>("name");\ncontainer.RegisterType<IService, CustomerService>("other name");\n\nvar instance = (IService)container.Resolve(typeof(IMyService), "other name");\n
\n

Note

\n

If the target class or object specifies any dependencies of its own, using constructor, property, or method call injection attributes, the instance returned will have these dependent objects injected automatically.

\n

By default, the RegisterType method registers a type with a transient lifetime, which means that the container will not hold onto a reference to the objects it creates when you call the Resolve method. Each time you call one of these methods, the container generates a new instance of the specified or mapped type. However, you can use lifetime managers to control the creation, lifetime, and disposal of objects if required.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/type.md","depot_name":".","document_id":"828ddeb7-d1d0-42ca-3b7b-92e045095af2","document_version_independent_id":"00b7411d-8720-a67b-d3ce-17be06f6dca6","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Resolution/type.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/type.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Resolution/type.md","rawTitle":"

Resolving an Object by Type

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Resolution By Type","uid":"Tutorial.Resolution.Type","updated_at":"2019-04-30 12:00 AM","wordCount":750},{"url":"/tutorials/composition/selection/constructor/","path":"tutorials/composition/selection/constructor/index.html","source_path":"tutorials/Composition/Selection/constructor.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/selection/constructor/","conceptual":"\n

Proper selection of the constructor used for type instantiation is one of the most important aspects of the container operation. When creating an object, the container uses one of the following algorithms to select a constructor it will be using to initialize the object:

\n\n

Automatic Constructor Selection

\n

Automatic constructor selection is performed if no other information is available on how to create a Type. Unity uses dynamic, real time algorithm to discover and select a constructor.

\n

The Unity container will try to execute the most complex constructor it can provide with appropriate dependencies. In other words, if the container can resolve and/or inject all parameters of the constructor, it will be selected.

\n

Creating Build Pipeline

\n

Selection process takes place during the first resolution of a Type contract. Unity container employs lazy resolution strategy. It will defer pipeline creation until the contract (RegistrationType and Name) is requested.

\n

The lazy approach allows registrations to proceed at random order and do not require dependencies to be registered before dependents. As long as all of these are available at the time of resolution Unity does not care in what order they were registered.

\n

Constructor Selection Steps

\n

One of the first steps, when creating a pipeline, is a constructor selection. Constructors are selected in the following order:

\n\n

The Unity container will select the first successful match and use it as a selection.

\n
\n
WARNING
\n

When more than one constructor could be matched at the same time, the order and constructor selection can not be guaranteed.

\n
\n

During normal operation the container does not perform validation.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will perform a selection validation and will throw an exception, reporting ambiguous constructors, if more than one constructor can be successfully selected with current configuration.

\n
\n

If no constructor could be selected, the container will throw an exception.

\n

Pipeline retention

\n

Once the pipeline is created, it will be used to satisfy all subsequent requests for that contract. If you need to update or rebuild the pipeline, the contract has to be re-registered.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/constructor.md","depot_name":".","document_id":"aea11f2a-6c27-f320-3e46-c7b606c05557","document_version_independent_id":"cd59209a-97e5-ae23-fabe-a9a5b024c9a4","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Selection/constructor.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Selection/constructor.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Automatic Constructor Selection","uid":"Tutorial.Selection.Constructor","updated_at":"2019-04-30 12:00 AM","wordCount":490},{"url":"/tutorials/composition/selection/selection/","path":"tutorials/composition/selection/selection/index.html","source_path":"tutorials/Composition/Selection/selection.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/selection/selection/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/selection.md","depot_name":".","document_id":"773829b3-06bb-7923-fe4b-0867d098e405","document_version_independent_id":"ad545286-383e-94cb-a269-1c679ef100bf","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Selection/selection.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/selection.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Selection/selection.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Selection","uid":"Tutorial.Resolution.Selection","updated_at":"2019-04-30 12:00 AM","wordCount":0},{"url":"/tutorials/definitions/","path":"tutorials/definitions/index.html","source_path":"tutorials/definitions.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/definitions/","conceptual":"\n

Generics terminology

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/definitions.md","depot_name":".","document_id":"04c5b240-961a-772a-7817-54e0bccae982","document_version_independent_id":"fa33c497-8117-ccce-36b1-aa3aa1d9adca","gitcommit":"https://github.com/unitycontainer/documentation/blob/a13df4070c33d6413bfa4faeecf4416ffd5f4330/tutorials/definitions.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/definitions.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/definitions.md","rawTitle":"

Terms and Definitions

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Terms and Definitions","uid":"Tutorial.Terms","updated_at":"2019-03-14 02:57 AM","wordCount":2},{"url":"/tutorials/extensions/activation/","path":"tutorials/extensions/activation/index.html","source_path":"tutorials/Extensions/activation.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/extensions/activation/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/activation.md","depot_name":".","document_id":"e2640f64-1956-be9e-d1a7-e34a5362fb8a","document_version_independent_id":"afd125e2-8bf4-f155-47be-a8e5a74167ea","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/activation.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/activation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/activation.md","rawTitle":"

Force Activation Extension

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Force Activation Extension","uid":"Tutorial.Extension.Activation","updated_at":"2019-04-05 01:56 AM","wordCount":0},{"url":"/tutorials/extensions/compilation/","path":"tutorials/extensions/compilation/index.html","source_path":"tutorials/Extensions/compilation.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/extensions/compilation/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/compilation.md","depot_name":".","document_id":"48ad6cfd-57bb-860b-c35c-bcb80309ad1f","document_version_independent_id":"b9e3cc08-5d2e-b6ff-1c10-1d5b98a5cb54","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/compilation.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/compilation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/compilation.md","rawTitle":"

Force Compilation Extension

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Force Compilation Extension","uid":"Tutorial.Extension.Compilation","updated_at":"2019-04-05 01:56 AM","wordCount":0},{"url":"/tutorials/extensions/diagnostic/","path":"tutorials/extensions/diagnostic/index.html","source_path":"tutorials/Extensions/diagnostic.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/extensions/diagnostic/","conceptual":"\n

Creating and configuring Unity container is a complicated process. A lot of things could go wrong and finding where it was misconfigured could be rather involved. To simplify debugging and to help fix issues Unity offers Diagnostic extension.

\n

Performance considerations

\n

The Unity container uses reflection for most of its operations. It gathers information about types, creates pipelines to create these types, and verifies everything all based on reflected data. Because of that it is rather resource extensive and relatively slow.

\n

To optimize performance, Unity engine does not do any runtime validation and only performs absolute minimum checks, just enough to be able to run. As result a lot of irregular conditions might go unnoticed. To remedy this, the container exposes Diagnostic extension which does thorough examination of all registration data and throws exceptions on any irregularities.

\n

Unity Diagnostic Extension

\n

Diagnostic extension, among other things, verifies the following conditions:

\n\n

Enabling Diagnostics

\n

The extension could be enabled in few different ways:

\n

Add Extension

\n

The most basic case is when extension is added via AddExtension(...) call. It works with either regular or generic methods.

\n
var container = new UnityContainer()\n                .AddExtension(new Diagnostic());\n
\n

or

\n
var container = new UnityContainer()\n                .AddExtension<Diagnostic>();\n
\n

The first method, one with AddExtension(new Diagnostic()) is a bit faster.

\n

Using extension method

\n

For convenience, Unity container exposes EnableDiagnostic() extension method. This method is equal to adding extension to the container.

\n
var container = new UnityContainer()\n                    .EnableDiagnostic();\n
\n

Enabling extension only in Debug

\n

The container provides conditional extension EnableDebugDiagnostic(). This method will only enable diagnostics in DEBUG mode. In this example

\n
var container = new UnityContainer();\ncontainer.EnableDebugDiagnostic();\n
\n

the extension is enabled only if calling method is compiled in Debug configuration.

\n
\n
IMPORTANT
\n

Extension methods will not work on IUnityContainer interface. It is only available on the UnityContainer itself.

\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/diagnostic.md","depot_name":".","document_id":"b64b01be-61e5-4cb2-e0ba-303da7dd561a","document_version_independent_id":"866e42fd-367d-52c3-d247-d1cd88951345","gitcommit":"https://github.com/unitycontainer/documentation/blob/8308246108d439f29e11e853c6daa702c58ba726/tutorials/Extensions/diagnostic.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/diagnostic.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/diagnostic.md","rawTitle":"

Diagnostic

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Diagnostic Extension","uid":"Tutorial.Extension.Diagnostic","updated_at":"2019-04-05 01:59 AM","wordCount":315},{"url":"/tutorials/extensions/extensions/","path":"tutorials/extensions/extensions/index.html","source_path":"tutorials/Extensions/extensions.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/extensions/extensions/","conceptual":"\n

Unity container comes prepackaged with several extensions:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/extensions.md","depot_name":".","document_id":"175515ab-3a5e-0514-8749-ed0171ff6bd0","document_version_independent_id":"af9fca54-a600-b1ab-4b7a-4cdde5a31dae","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/extensions.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/extensions.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/extensions.md","rawTitle":"

Unity Extensions

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Extensions","uid":"Tutorial.Extensions","updated_at":"2019-04-05 01:56 AM","wordCount":19},{"url":"/tutorials/extensions/legacy/","path":"tutorials/extensions/legacy/index.html","source_path":"tutorials/Extensions/legacy.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/extensions/legacy/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/legacy.md","depot_name":".","document_id":"562b10a8-2c05-2a01-04d6-0be4b44f6361","document_version_independent_id":"67ecddf7-6f6f-c595-4348-6f44de20a0a3","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/legacy.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/legacy.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/legacy.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Legacy Extension","uid":"Tutorial.Extension.Legacy","updated_at":"2019-04-05 01:56 AM","wordCount":0},{"url":"/tutorials/hierarchies/","path":"tutorials/hierarchies/index.html","source_path":"tutorials/hierarchies.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/hierarchies/","conceptual":"\n

Unity container provides a way to create child containers (other systems refer to it as resolution scopes) and allows building sophisticated scope trees of registrations. There are just a few simple rules to follow when dealing with container hierarchies:

\n\n

Using Container Hierarchies

\n

Unity supports nested containers, allowing you to build container hierarchies. Nesting containers enables you to control the scope and lifetime of singleton objects, and register different mappings for specific types. This topic contains the following sections that describe how you can create container hierarchies and use them in your applications:

\n\n

Constructing and Disposing Unity Containers

\n

The following methods enable you to create a new default UnityContainer, create a child container that has a specified UnityContainer as its parent, and dispose an existing container.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MethodDescription
new UnityContainer()Creates a root UnityContainer. Returns a reference to the new container.
CreateChildContainer()Creates a new nested UnityContainer as a child of the current container. The current container first applies its own settings, and then it checks the parent for additional settings. Returns a reference to the new container.
Dispose()Disposes this container instance and any child containers. Also disposes any registered object instances whose lifetimes are managed by the container.
\n

Controlling Object Scope and Lifetime

\n

When the container creates singleton objects, it manages the lifetime of these singletons. They remain in scope until you (or the garbage collector) dispose the container. At this point, it disposes the registered singleton instances it contains. In addition, if you dispose the parent container in a nested container hierarchy, it automatically disposes all child containers and the registered singletons they contain.

\n

Therefore, if you require two separate sets of such objects that must have different lifetimes, you can use hierarchical containers to store and manage each set. Register instances that you want to be able to dispose separately in one or more child containers that you can dispose without disposing the parent container.

\n

The following code demonstrates the use of a child container to manage the lifetime of specific singleton instances while maintaining the singleton instances in the parent container.

\n
\n// Create parent container\nIUnityContainer parentCtr = new UnityContainer();\n\n// Register type in parent container\nparentCtr.RegisterType<MyParentObject>(TypeLifetime.PerContainer);\n\n// Create nested child container in parent container\nIUnityContainer childCtr = parentCtr.CreateChildContainer();\n\n// Register type in child container\nchildCtr.RegisterType<MyChildObject>(TypeLifetime.PerContainer);\n\n// Create instance of type stored in parent container\nMyParentObject parentObj = parentCtr.Resolve<MyParentObject>();\n\n// Create instance of type stored in child container\nMyChildObject childObj = childCtr.Resolve<MyChildObject>();\n\n// ... can use both generated objects here ...\n\n// Dispose child container\nchildCtr.Dispose();\n\n// ... can use only object in parent container here ...\n\n// Dispose parent container\nparentCtr.Dispose();\n
\n

Overriding registrations

\n

You can use nested containers when you have slightly different dependency injection requirements for specific objects but want to provide a fallback facility for objects that implement a specific interface or are of a specific type. For example, you may have a general requirement for objects that implement the IMyObject interface to map to the type MyStandardObject. However, in specific parts of the application code, you may want the IMyObject interface to map to the type MySpecialObject.

\n

In this case, you can register the general mapping in the parent container and register the specific case in a child container. Then, when you want to obtain an instance of the object, you call the Resolve method on the appropriate container. If you call the method on the child container, it returns an object of type MySpecialObject. If you call the method on the parent container, it returns an object of type MyStandardObject.

\n

However, the advantage with nested containers is that, if the child container cannot locate a mapping for the requested interface or type, it passes the request to its parent container and onward through the hierarchy until it reaches the root or base container. Therefore, for objects not mapped in the child container, the mapping in the parent container (or in an ancestor container where there are more than two levels in the hierarchy) defines the object type returned.

\n

The following code shows how you can implement the preceding scenario.

\n
// Create parent container\nIUnityContainer parentCtr = new UnityContainer();\n\n// Register two mappings for types in parent container\nparentCtr.RegisterType<IMyObject, MyStandardObject>();\nparentCtr.RegisterType<IMyOtherObject, MyOtherObject>();\n\n// Create nested child container in parent container\nIUnityContainer childCtr = parentCtr.CreateChildContainer();\n\n// Register mapping for specific type in child container\nchildCtr.RegisterType<IMyObject, MySpecialObject>();\n\n// Now retrieve instances of the mapped objects using the child container.\n// Using the interface as the type for the returned objects means that it\n// does not matter which container returns the actual object.\n\n// This code returns an object of type MySpecialObject using the mapping\n// registered in the child container:\nIMyObject specialObject = childCtr.Resolve<IMyObject>();\n\n// This code returns an object of type MyOtherObject using the mapping\n// registered in the parent container because there is no mapping in \n// the child container for this type:\nIMyOtherObject otherObject = childCtr.Resolve<IMyOtherObject>();\n\n// Now retrieve instance of the standard object using the parent container.\n// This code returns an object of type MyStandardObject using the mapping\n// registered in the parent container:\nIMyObject standardObject = parentCtr.Resolve<IMyObject>();\n\n// Dispose parent container and child container\nparentCtr.Dispose();\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/hierarchies.md","depot_name":".","document_id":"f2ce8356-f147-18ea-608e-d435aba30a24","document_version_independent_id":"3059ba46-3fde-dc5c-c040-4e7e672e2330","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/tutorials/hierarchies.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/hierarchies.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/hierarchies.md","rawTitle":"

Container Hierarchies

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Container Hierarchy","uid":"Tutorial.Container.Hierarchy","updated_at":"2019-03-16 08:42 PM","wordCount":935},{"url":"/tutorials/lifetime/container/","path":"tutorials/lifetime/container/index.html","source_path":"tutorials/lifetime/container.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/container/","conceptual":"\n

Per Container lifetime allows a registration of an existing or resolved object as a scoped singleton in the container it was created or registered. In other words this instance is unique within the container it war registered with. Child or parent containers could have their own instances registered for the same contract.

\n

Unity returns the same instance each time the Resolve method is called or when the dependency mechanism injects the instance into other classes.

\n

The Lifetime Manager

\n

Per container lifetime is controlled by ContainerControlledLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects registered with a particular container.

\n

Registration

\n

Per container lifetime is supported by all registration types

\n

Example

\n

To create a Type registration with per container lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerContainer);\n
\n

to register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerContainer);\n
\n

or to register an instance:

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.PerContainer);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime, FactoryLifetime, and InstanceLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container.md","depot_name":".","document_id":"f944002f-f282-161d-59c3-dc0158b81c38","document_version_independent_id":"50f57fc6-d6aa-c252-3fee-3489768c2729","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/container.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/container.md","rawTitle":"

Per Container Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Per Container Lifetime","uid":"Tutorial.Lifetime.Container","updated_at":"2019-03-23 02:03 AM","wordCount":179},{"url":"/tutorials/lifetime/container_transient/","path":"tutorials/lifetime/container_transient/index.html","source_path":"tutorials/lifetime/container_transient.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/container_transient/","conceptual":"\n

This lifetime is similar to Transient Lifetime with exception how the container holds references to created objects.

\n

On each call to the Resolve<T>() method a container will create a new objects. If the objects implements IDisposable, the container will hold a reference to the interface and will dispose the object when the container goes out of scope.

\n

This lifetime is particularly useful in session based designs with child containers associated with the session.

\n

The Lifetime Manager

\n

Per container transient lifetime is controlled by ContainerControlledTransientManager type. This lifetime manager creates transient objects and holds reference to disposable instance and disposes these when container goes out of scope.

\n

Registration

\n

Per container transient lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per container transient lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerContainerTransient);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerContainerTransient);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container_transient.md","depot_name":".","document_id":"29a2ea99-b616-e72c-4e44-348a0626f001","document_version_independent_id":"65e82dd5-d73d-c902-ecfd-b6d9899f7e36","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/container_transient.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container_transient.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/container_transient.md","rawTitle":"

Container Transient Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Container Lifetime","uid":"Tutorial.Lifetime.Container.Transient","updated_at":"2019-03-23 02:03 AM","wordCount":184},{"url":"/tutorials/lifetime/disposal/","path":"tutorials/lifetime/disposal/index.html","source_path":"tutorials/lifetime/disposal.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/disposal/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/disposal.md","depot_name":".","document_id":"2b14df58-74ce-1a15-ad4b-1a2d4d6cbeef","document_version_independent_id":"c0f3331c-2ddb-e9d7-fca1-2b6545a81a01","gitcommit":"https://github.com/unitycontainer/documentation/blob/5540f1bb5b8cc106e4f2c8566afa78046a94691a/tutorials/lifetime/disposal.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/disposal.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/disposal.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","updated_at":"2019-02-22 04:26 PM","wordCount":0},{"url":"/tutorials/lifetime/external/","path":"tutorials/lifetime/external/index.html","source_path":"tutorials/lifetime/external.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/external/","conceptual":"\n

This lifetime allows you to register externally created objects with the container to enable them to participate in dependency injection process. Unity maintains only a weak reference to the instances it registers.

\n

Since the container does not maintain a strong reference to the object, the garbage collector can dispose of the objects if no other code is keeping it alive.

\n

The Lifetime Manager

\n

External lifetime is controlled by ExternallyControlledLifetimeManager type and provides basic support for externally managed objects.

\n

Registration

\n

External lifetime is only supported by Instance registrations.

\n

External lifetime is similar to Per Container Lifetime. It is held at the same container it is registered with and could be accessed and overridden in child container. Registrations with external lifetime override singletons with the same contract.

\n

Example

\n

To create a registration with external lifetime:

\n
var instance = new Service();\n...\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.External);\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/external.md","depot_name":".","document_id":"625147b9-ab0d-c4e5-a0f3-f578ab38848b","document_version_independent_id":"46cdda77-89a2-945f-304d-ee0461f7b5a5","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/external.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/external.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/external.md","rawTitle":"

External Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"External Lifetime","uid":"Tutorial.Lifetime.External","updated_at":"2019-03-23 02:03 AM","wordCount":162},{"url":"/tutorials/lifetime/hierarchical/","path":"tutorials/lifetime/hierarchical/index.html","source_path":"tutorials/lifetime/hierarchical.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/hierarchical/","conceptual":"\n

The Unity container allows creating hierarchies of child containers. This lifetime creates local singleton for each level of the hierarchy. So, when you resolve a type and this container does not have an instance of that type, the container will create new instance. Next time the type is resolved the same instance will be returned.

\n

If a child container is created and requested to resolve the type, the child container will create a new instance and store it for subsequent resolutions. Next time the child container requests to resolve the type, it will return the stored instance.

\n

If you have multiple children, each will resolve its own instance.

\n

The Lifetime Manager

\n

Hierarchical lifetime is controlled by HierarchicalLifetimeManager type. It forces each child container to resolve its own instance of the object and does not share one with the parent or child containers.

\n

Registration

\n

Hierarchical lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with hierarchical lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.Hierarchical);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.Hierarchical);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/hierarchical.md","depot_name":".","document_id":"ed59d502-58d2-b13f-0561-833ca822dd15","document_version_independent_id":"4a92b4ec-c719-f2a6-f0dc-cf933cc22b5d","gitcommit":"https://github.com/unitycontainer/documentation/blob/3fb58b282a3dc13782e99f27f44902dcc5ab6051/tutorials/lifetime/hierarchical.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/hierarchical.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/hierarchical.md","rawTitle":"

Hierarchical Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Hierarchical Lifetime","uid":"Tutorial.Lifetime.Hierarchical","updated_at":"2019-08-27 08:54 PM","wordCount":216},{"url":"/tutorials/lifetime/lifetime/","path":"tutorials/lifetime/lifetime/index.html","source_path":"tutorials/lifetime/lifetime.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/lifetime/","conceptual":"\n

The Unity container manages the lifetime of objects based on a Lifetime Manager you specify when you register the type.

\n

The default behavior for the container, if no lifetime is registered, to use a Transient Lifetime. It creates a new instance of the requested type each time Resolve method is called or when the dependency mechanism injects instances into other classes. The container does not store any references to the object.

\n

Unity uses specific types that inherit from the LifetimeManager base class (collectively referred to as lifetime managers) to control how it stores references to object instances and how the container disposes of these instances.

\n

When you register an existing object using the RegisterInstance method, the default behavior is for the container to take over management of the lifetime of the object you pass to this method using the Per Container Lifetime. This means that container maintains strong reference to the object and at the end of the container lifetime, the existing object is disposed.

\n

How registering lifetime works

\n

When type is registered with a lifetime manager, the creation and life cycle of the created instances is controlled according to that lifetime.

\n

When a container is requested to produce an instance of the type, it first checks if a lifetime manager is associated with it. If not, or if it is a transient manager, the container simply creates the instance and return it to the caller.

\n

If registration contains a lifetime manager, the container tries to get the value from that manager. If the manager has nothing stored in it, the container created an instance. But before it returns the instance to the caller it adds it to the lifetime manager for later use.

\n

Next time the type is requested, the container gets the value previously stored in the manager, if available, and returns it to the caller.

\n

Each lifetime manager has its own criteria how to store and retrieve object instances. Some only store unique instances in a container, others store unique instances per thread or session. Each algorithm serves particular purpose.

\n

Built-In Lifetimes

\n

The Unity container implements several lifetime managers that you can use directly in your code. The range covers most common use cases and scenarios. Unity includes the following lifetime implementations:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/lifetime.md","depot_name":".","document_id":"5967a720-f54b-9740-a35b-9261249cd593","document_version_independent_id":"508ed49a-b285-2772-22f3-504f140d52cc","gitcommit":"https://github.com/unitycontainer/documentation/blob/c070d39a1c3e31474fffb345891d82d0095e5b2e/tutorials/lifetime/lifetime.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/lifetime.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/lifetime.md","rawTitle":"

Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Lifetime Management","uid":"Tutorial.Lifetime","updated_at":"2019-03-23 02:38 AM","wordCount":395},{"url":"/tutorials/lifetime/managers/","path":"tutorials/lifetime/managers/index.html","source_path":"tutorials/lifetime/managers.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/managers/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/managers.md","depot_name":".","document_id":"f8559604-1b16-b232-33ff-2f49cb407425","document_version_independent_id":"bc1bd747-5468-e6d2-c466-1c22570f613b","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/managers.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/managers.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/managers.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Lifetime Managers","uid":"Tutorial.Lifetime.Managers","updated_at":"2019-03-23 02:03 AM","wordCount":20},{"url":"/tutorials/lifetime/resolve/","path":"tutorials/lifetime/resolve/index.html","source_path":"tutorials/lifetime/resolve.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/resolve/","conceptual":"\n

This lifetime keeps a reference to an instance only for the duration of one resolution call. This type of lifetime is useful when you need to pass the same instance of the dependency to a different nodes of the resolution graph. Consider this scenario:

\n
\nclass a {}\n\nclass b\n{\n    b(a arg)\n    {...}\n}\n\nclass c\n{\n    c(a arg1, b arg2)\n    {...}\n}\n\n
\n

When you resolve type c, it depends on type b and type a. Type b, in turn, also depends on type a, and both types, c and b, require a to be the same instance.

\n

If type a is a singleton, the logic is easy. But if you require each instance of c to have a unique a, you could use per resolve lifetime. The instance of a will act as a singleton only during that one resolution. Next call to resolve the dependent type will create a new object.

\n

In the case of recursion, the singleton behavior is still applies and prevents circular dependency.

\n

The Lifetime Manager

\n

Per resolve lifetime is controlled by PerResolveLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects on a per-resolve basis.

\n

Registration

\n

Per resolve lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per resolve lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerResolve);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerResolve);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/resolve.md","depot_name":".","document_id":"0d58f2b4-f70d-efe0-5963-be66ccaab8f2","document_version_independent_id":"a1db04ca-fb22-ecd3-2542-e1a1f9d0cc0b","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a3bce3e65127863d30af8960c9eb3393e9181c1/tutorials/lifetime/resolve.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/resolve.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/resolve.md","rawTitle":"

Per Resolve Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Per Resolve Lifetime","uid":"Tutorial.Lifetime.Resolve","updated_at":"2019-03-24 07:28 PM","wordCount":269},{"url":"/tutorials/lifetime/singleton/","path":"tutorials/lifetime/singleton/index.html","source_path":"tutorials/lifetime/singleton.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/singleton/","conceptual":"\n

Singleton lifetime creates globally unique singleton. Any Unity container tree (parent and all the children) is guaranteed to have only one global singleton for the registered type.

\n

The Lifetime Manager

\n

The singleton lifetime is controlled by SingletonLifetimeManager type.

\n

Registration

\n

Registering a type with singleton lifetime always places the registration at the root of the container tree and makes it globally available for all the children of that container. It does not matter if registration takes places at the root of child container the destination is always the root node.

\n

Repeating the registration on any of the child nodes with singleton lifetime will always override the root registration.

\n

Singleton lifetime is supported by all registration types.

\n

Example

\n

To create a Type registration with singleton lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.Singleton);\n
\n

to register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.Singleton);\n
\n

or to register an instance:

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.Singleton);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime, FactoryLifetime, and InstanceLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/singleton.md","depot_name":".","document_id":"a3491109-364d-05db-d4a5-f61fc2ce069e","document_version_independent_id":"39b0fe65-5ec7-100d-e2a6-897d10093ccb","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a3bce3e65127863d30af8960c9eb3393e9181c1/tutorials/lifetime/singleton.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/singleton.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/singleton.md","rawTitle":"

Singleton Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Singleton Lifetime","uid":"Tutorial.Lifetime.Singleton","updated_at":"2019-03-24 07:28 PM","wordCount":182},{"url":"/tutorials/lifetime/thread/","path":"tutorials/lifetime/thread/index.html","source_path":"tutorials/lifetime/thread.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/thread/","conceptual":"\n

Per thread lifetime means a new instance of the registered Type will be created once per each thread. In other words, if a Resolve<T>() method is called on a thread the first time, it will return a new object. Each subsequent call to Resolve<T>(), or when the dependency mechanism injects instances of the type into other classes on the same thread, the container will return the same object.

\n

The Lifetime Manager

\n

Per thread lifetime is controlled by PerThreadLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects on a per-thread basis.

\n

Registration

\n

Per thread lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per thread lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerThread);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerThread);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/thread.md","depot_name":".","document_id":"ab2df0fc-9e21-ded4-29f6-963493984600","document_version_independent_id":"572b5b1f-4bc4-bd1e-0e0a-4b89f5fe2529","gitcommit":"https://github.com/unitycontainer/documentation/blob/bb6dc876c93ae8f48e84e24ed81ea6122119f554/tutorials/lifetime/thread.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/thread.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/thread.md","rawTitle":"

Per Thread Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Per Thread Lifetime","uid":"Tutorial.Lifetime.Thread","updated_at":"2019-03-23 12:23 AM","wordCount":169},{"url":"/tutorials/lifetime/transient/","path":"tutorials/lifetime/transient/index.html","source_path":"tutorials/lifetime/transient.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/transient/","conceptual":"\n

Transient lifetime is a default lifetime of the Unity container. As the name implies it lasts very short period of time, actually, no time at all. In the Unity container terms, having transient lifetime is the same as having no lifetime manager at all.

\n

For this lifetime manager Unity creates and returns a new instance of the requested type for each call to the Resolve method.

\n

The Lifetime Manager

\n

The transient lifetime is controlled by TransientLifetimeManager. This lifetime manager is used by default for all types registered using the RegisterType method where no specific manager has been provided.

\n

Registration

\n

When registering a transient Type it is recommended to not pass an instance of TransientLifetimeManager to the registration, but allow Unity to create it explicitly.

\n

Example

\n
RegisterType<Foo>();\nRegisterType<IService, Service>();\n
\n

In this example a Type Foo and a mapping from IService to Service both registered with transient lifetime. So every call to Resolve<Foo>() or Resolve<IService>() will create a new object instance.

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/transient.md","depot_name":".","document_id":"06238d76-3b70-618a-912e-a9c1962b98ac","document_version_independent_id":"f0f53112-6e30-292d-4b71-9573e0cded31","gitcommit":"https://github.com/unitycontainer/documentation/blob/c71e919e39ea3263b8425ee4c43a30d223d6f726/tutorials/lifetime/transient.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/transient.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/transient.md","rawTitle":"

Transient Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Transient Lifetime","uid":"Tutorial.Lifetime.Transient","updated_at":"2019-03-22 11:43 PM","wordCount":181},{"url":"/tutorials/registration/factory/","path":"tutorials/registration/factory/index.html","source_path":"tutorials/registration/factory.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/factory/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/factory.md","depot_name":".","document_id":"f0604d33-6d6b-f783-d6b5-11384867111b","document_version_independent_id":"2cdbbcb1-87c4-a276-7ac0-13258465cf06","gitcommit":"https://github.com/unitycontainer/documentation/blob/fcf3dc0a8e1438e5b0d980be1f7a8ea83ed2efdc/tutorials/registration/factory.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/factory.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/factory.md","rawTitle":"

Factory Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Factory Registration","uid":"Tutorial.Registration.Factory","updated_at":"2019-03-06 11:21 PM","wordCount":0},{"url":"/tutorials/registration/instance/","path":"tutorials/registration/instance/index.html","source_path":"tutorials/registration/instance.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/instance/","conceptual":"\n

Registering instances is useful if you already have an instance of an object that you have previously created and want Unity to manage its lifetime, or if you want Unity to inject that object into other objects that it is resolving.

\n

From container's point of view instance registration is in every way similar to type registration, except that it does not need to create the instance on the first Resolve request. It simply gets the object from lifetime manager and returns it as requested. The LifetimeManager controls the lifetime of the object and disposes it when appropriate.

\n

Registration of an Existing Object Instances

\n

The RegisterInstance method registers an existing instance with the container. You specify the instance type and optional lifetime in the parameter list. The container will return the specified existing instance for the duration of the specified lifetime. Unity container offers several overloads to simplify registration syntax. The simplest instance registration does not require any additional parameters other than instance itself:

\n
var instance = new Service();\n\ncontainer.RegisterInstance(instance);\n
\n

Resolving type Service like this container.Resolve<Service>() will return an instance of the Service object we registered.

\n

Metadata

\n

Instance registration, as any other registration type, supports adding a registration Name. Doing so lets you register multiple instance of the same Type for later retrieval as a collection. Using overload you can write it like this:

\n
container.RegisterInstance("Some Name", instance);\n
\n

Type mapping

\n

Any instance can also be registered as any of the ancestral types or any of the interfaces it implements effectively creating a mapping between these types.

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance);\ncontainer.RegisterInstance<IService>("Some Name", instance);\nor\ncontainer.RegisterInstance(typeof(IService), instance)\ncontainer.RegisterInstance(typeof(IService), "xyz", instance)\n
\n

In this example Unity creates two registrations of type IService. When either is resolved it returns the instance of the Service object we registered with container. For more information see Type Mapping

\n

Lifetime

\n

Due to the fact that container does not create these instances, the instance registration only supports limited number of compatible lifetimes:

\n

Per Container

\n

By default Unity uses Per Container lifetime manager when no manager specified explicitly. So all these examples above will be registered with container scope. Unity will keep these instances referenced and alive until the container is alive. Although it is not necessary to provide container controlled lifetime manager you can still write it like this:

\n
container.RegisterInstance("Some Name", instance, InstanceLifetime.PerContainer);\ncontainer.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.PerContainer);\n
\n

Singleton

\n

Instances can be registered as global singletons by using Singleton lifetime manager:

\n
container.RegisterInstance("Some Name", instance, InstanceLifetime.Singleton);\ncontainer.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.Singleton);\n
\n

These instances will be kept alive until root container is disposed.

\n

External

\n

If Unity is not supposed to control lifetime of the object the External lifetime manager is used:

\n
container.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.External);\n
\n

External lifetime manager is also useful when same instance is registered via multiple interfaces. In this case only one registration should use Per Container or Singleton manager and the rest should be registered with External lifetime manager. This way, when object is disposed, it is not disposed multiple times:

\n
container.RegisterInstance(instance, InstanceLifetime.Singleton);\n\ncontainer.RegisterInstance<IService>(        instance, InstanceLifetime.External);\ncontainer.RegisterInstance<IService>("Name", instance, InstanceLifetime.External);\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/instance.md","depot_name":".","document_id":"2db4d9db-4837-9463-3cc7-45a8a5227018","document_version_independent_id":"9ecb4aa2-4bbf-0201-0504-07b44db0e1ce","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/instance.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/instance.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/instance.md","rawTitle":"

Instance Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Instance Registration","uid":"Tutorial.Registration.Instance","updated_at":"2019-03-07 05:22 AM","wordCount":499},{"url":"/tutorials/registration/metadata/","path":"tutorials/registration/metadata/index.html","source_path":"tutorials/registration/metadata.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/metadata/","conceptual":"\n

During registration Unity relies on information you provide to properly register types, instances, and factories. This is a description of metadata you could provide to properly declare how the Type should be registered and built:

\n

Registered Type

\n

A Type that will be requested during resolution is called Registered Type. In the example below SomeType would be a registered type.

\n
container.RegisterType<SomeType>();\n...\nvar value = container.Resolve<SomeType>();\n
\n

Different container authors call this type by different names, FromType, ServiceType, etc. The key point to remember is that this is the Type container will be referencing in the internal registry and will be looking for when executing the resolve.

\n

Name

\n

Each registration must be unique within the scope on a container it is registered with. A registration is identified by two pieces of information: Registered Type and Name.\nAdding the name to registration allows multiple 'instances' of the same type to be registered with the container.

\n

For example, if you register the same service with no name multiple times, each subsequent registration will override the last because in each case you are registering the same type IService with the same name null:

\n
container.RegisterType<IService, Service1>();\ncontainer.RegisterType<IService, Service2>();\ncontainer.RegisterType<IService, Service3>();\n\nvar enumeration = container.Resolve<IEnumerable<IService>>();\nvar count = enumeration.Count();\n
\n

The value of variable count will be 1.

\n

Adding unique names to registrations makes each unique:

\n
container.RegisterType<IService, Service1>("1");\ncontainer.RegisterType<IService, Service2>("2");\ncontainer.RegisterType<IService, Service3>("3");\n\nvar enumeration = container.Resolve<IEnumerable<IService>>();\nvar count = enumeration.Count();\n
\n

In this example the value of variable count will be 3.

\n

Mapped To Type

\n

Sometimes it is also called ToType, ImplementationType, and etc. It describes the type Unity should use to create the instance. Mapped To Type must be descendant of, or it should implement the Registered Type. In other words, it must be assignable to a variable of Registered Type.

\n

This registration member creates a mapping between service and implementation types. In the following example IService is mapped to Service and when Unity container is asked to resolve IService it will, in turn, create an instance of type Service and return it as interface IService.

\n
container.RegisterType<IService, Service>();\n\nvar result = container.Resolve<IService>();\n\nAssert(typeof(Service) == result.GetType())\n
\n

For more information see Type Mapping.

\n

Lifetime Manager

\n

This member holds a reference to a lifetime manager that Unity will be using to manage instance(s) of this type. For more information see Lifetime Management.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/metadata.md","depot_name":".","document_id":"fc6c3f44-66b3-f55d-334e-840d9ac78cb1","document_version_independent_id":"f13bf8e3-6b83-d673-6b1f-cc55aa6cff6a","gitcommit":"https://github.com/unitycontainer/documentation/blob/2a5f6d8a2ee72d62253de6ab40494c4d39e00011/tutorials/registration/metadata.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/metadata.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/metadata.md","rawTitle":"

Registration Metadata

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Registration Metadata","uid":"Tutorial.Registration.Metadata","updated_at":"2019-05-15 06:34 PM","wordCount":380},{"url":"/tutorials/registration/registration/","path":"tutorials/registration/registration/index.html","source_path":"tutorials/registration/registration.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/registration/","conceptual":"\n

Unity does not require Type to be registered to resolve it.

\n

Any concrete, constructable Type could be resolved by Unity without any prior preparation. It will even create and supply parameters if required. In other words, if you can create a Type with new operator:

\n
var value = new SomeClass(new SomeOtherClass());\n
\n

you can resolve it from Unity:

\n
var value = container.Resolve<SomeClass>();\n
\n

Minimum Registration Requirements

\n

A lot of times, if type does not require any custom steps, it is faster to resolve Type from the container if it is not registered. You should only register a Type if one of the following is required:

\n\n

What is a Registration and how it works

\n

Registration is how you control Unity to do it 'Your' way. When you register a Type, you are instructing Unity to create and initialize an instance of that Type in a very particular way. You also instruct Unity how to deal with the crated instance during its lifetime.

\n

Once registration is complete, Unity creates a blueprint of the type factory where it stores implementation details (name, to and from types, etc.), information about what members to inject and how, and lifetime manager responsible for managing the instance.\nAt the later time, when that Type is requested, Unity uses this blueprint to create a pipeline (resolver delegate) to be used to create type.

\n

Each Unity container exposes a collection of available registrations presented as an enumeration of IContainerRegistration objects. This collection could be used to filter and select certain registrations as well as to check if the Type is registered and how.

\n

Different types of registrations

\n

Unity recognizes three different scenarios of how instances and types are created and based on these allows three different types of registrations:

\n

Instances created outside of Unity

\n

A lot of times parts of system's infrastructure require to be available to clients and services of the application. These entities are created and managed outside of the Unity but should be accessible by consumers of the framework during resolution. To enable access to these objects Unity provides a way to register instances. For more information see Instance Registration.

\n

Instances created by Unity using provided Type Factory

\n

Although Unity is quite capable in creating instances of types, sometimes it is more efficient or desireable to use Type factories. Unity provides API to register a special factory delegate. For more information see Factory Registration

\n

Instances created by Unity

\n

This is the most common scenario where objects are created by the container itself. Creation process is controlled by either Type registrations associated with the container or implicit Unity defaults if none registered. For more information how Type can be registered seeType Registration

\n

Container Hierarchies

\n

Unity container provides a way to create child containers (also referred as creating scopes) and allows building sophisticated hierarchical trees of registrations. There are just a few simple rules to follow when dealing with container hierarchies. For more information see Container Hierarchy

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/registration.md","depot_name":".","document_id":"155f0237-7c9a-c764-d36c-ce050328f35d","document_version_independent_id":"9690b687-88ba-a4a2-ef60-1c2cf2353e9f","gitcommit":"https://github.com/unitycontainer/documentation/blob/a17b17619ae5cf4fc682ced9bb9eddc392311e26/tutorials/registration/registration.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/registration.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/registration.md","rawTitle":"

Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Registration","uid":"Tutorial.Registration","updated_at":"2019-03-11 12:32 AM","wordCount":525},{"url":"/tutorials/registration/type/constructor/annotation/","path":"tutorials/registration/type/constructor/annotation/index.html","source_path":"tutorials/registration/Type/Constructor/annotation.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/constructor/annotation/","conceptual":"\n

To select constructors you create through the Unity container, you can use the following three techniques:

\n\n

Annotated Constructor Injection

\n

Constructor Injection with Attribute Annotation allows you to apply attributes to the class' constructor designating it for dependency injection. When creating the class, Unity will always (unless explicitly overwritten in Registration) use that constructor. You only need to use this technique when there is more than one constructor in the target type.

\n

Annotating a Constructor

\n

When a target class contains more than one constructor and the automatic algorithm does not provide desired selection, you may use the InjectionConstructor attribute to specify the constructor you wish to use for injection.

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this example type Service contains four public constructors. Three of these constructors have one parameter each. A Type like this creates an ambiguity that Unity could not resolve by itself.

\n
\n
WARNING
\n

During resolution, the container will pick the first constructor it could satisfy with dependencies and will use it. In the example above, it could be any of the three constructors with one parameter.

\n
\n

The container is not trying to validate all available contractors during normal execution.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructors.

\n
\n

Normally, Unity would select the third constructor with three parameters, but by annotating the second constructor with the attribute you force Unity to use it during resolution.

\n

Multiple Constructor Annotations

\n

Annotating multiple constructors with injection parameters is not recommended. Unity is not guaranteed to process constructors in certain order. If multiple constructors are annotated, behavior might change from version to version.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructor annotations.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/annotation.md","depot_name":".","document_id":"bccfb7ef-9055-d8bb-1199-c150fefc32b1","document_version_independent_id":"ab8a87e3-5b14-9e99-2f2a-60bdaac3187d","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/annotation.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/annotation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/annotation.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor By Attribute Annotation","uid":"Tutorial.Injection.Constructor.Annotation","updated_at":"2019-03-10 08:00 PM","wordCount":409},{"url":"/tutorials/registration/type/constructor/automatic/","path":"tutorials/registration/type/constructor/automatic/index.html","source_path":"tutorials/registration/Type/Constructor/automatic.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/constructor/automatic/","conceptual":"\n

Proper selection of the constructor used for type instantiation is one of the most important aspects of the container operation. When creating an object, the container uses one of the following algorithms to select a constructor it will be using to initialize the object:

\n\n

Automatic Constructor Selection

\n

Automatic constructor selection is performed if no other information is available on how to create a Type. Unity uses dynamic, real time algorithm to discover and select a constructor.

\n

The Unity container will try to execute the most complex constructor it can provide with appropriate dependencies. In other words, if the container can resolve and/or inject all parameters of the constructor, it will be selected.

\n

Creating Build Pipeline

\n

Selection process takes place during the first resolution of a Type contract. Unity container employs lazy resolution strategy. It will defer pipeline creation until the contract (RegistrationType and Name) is requested.

\n

The lazy approach allows registrations to proceed at random order and do not require dependencies to be registered before dependents. As long as all of these are available at the time of resolution Unity does not care in what order they were registered.

\n

Constructor Selection Steps

\n

One of the first steps, when creating a pipeline, is a constructor selection. Constructors are selected in the following order:

\n\n

The Unity container will select the first successful match and use it as a selection.

\n
\n
WARNING
\n

When more than one constructor could be matched at the same time, the order and constructor selection can not be guaranteed.

\n
\n

During normal operation the container does not perform validation.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will perform a selection validation and will throw an exception, reporting ambiguous constructors, if more than one constructor can be successfully selected with current configuration.

\n
\n

If no constructor could be selected, the container will throw an exception.

\n

Pipeline retention

\n

Once the pipeline is created, it will be used to satisfy all subsequent requests for that contract. If you need to update or rebuild the pipeline, the contract has to be re-registered.

\n\n

See Also:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/automatic.md","depot_name":".","document_id":"c1e7c148-cf93-2de0-cc54-32701d701632","document_version_independent_id":"eca76e28-a114-ec13-d320-563b416d21f4","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/registration/Type/Constructor/automatic.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/automatic.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/automatic.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Automatic Constructor Injection","uid":"Tutorial.Injection.Constructor.Implicit","updated_at":"2019-04-30 12:00 AM","wordCount":513},{"url":"/tutorials/registration/type/constructor/constructor/","path":"tutorials/registration/type/constructor/constructor/index.html","source_path":"tutorials/registration/Type/Constructor/constructor.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/constructor/constructor/","conceptual":"\n

Constructor Injection is a process where Unity selects a constructor, resolves parameter dependencies, and executes the constructor by injecting it with resolved or injected dependencies.

\n

Restrictions

\n

Unity can be configured to execute any accessible constructor with the following exceptions:

\n\n

Selection Methods

\n

Selecting a constructor is one of the first steps in creating a resolution pipeline. Unity supports the following selection methods:

\n

Automatic Selection

\n

Automatic Selection is a default method of selecting constructors. It will be used if no constructor is injected or annotated.

\n

By default Unity uses 'smart' algorithm to select constructor. It sorts all accessible constructors by number of parameters in ascending order and goes from most complex to the default, checking if it can satisfy its parameters. The container selects the first constructor it can create and executes it.

\n
\n
WARNING
\n

Unity will not check for ambiguities unless Diagnostic extension is installed.

\n
\n
\n
TIP
\n

Legacy selection algorithm which selects the most complex constructor could be enabled by installing Legacy extension. It will replace and disable 'smart' selection.

\n
\n

Constructor Annotation

\n

Constructor annotated with InjectionConstructor attribute overrides automatic selection. For more information see Annotating Type for Constructor Injection

\n

Constructor injection

\n

Constructor configuration registered for the Type has highest priority. It will override other selection methods and will always execute the configured constructor.

\n

As opposed to methods, constructors do not have a name to distinguish one from the other. The only difference between constructors is number and Type of parameters they take. Because of that constructor selection is based solely on parameters and its types.

\n

Invoking the Constructor

\n

Invoked constructor and injection of its parameters is configured by registering the Type with the InjectionConstructor. Creating the InjectionConstructor with proper injection members or values determines what constructor is selected and how parameters are initialized. Values and resolvers added to InjectionConstructor will be used to initialize parameters of the constructor of the Type. The following aspects could be configured:

\n\n
\n
TIP
\n

As alternative, helper Invoke.Constructor(...) can be used to configure invoked constructor.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/constructor.md","depot_name":".","document_id":"3d0b4d82-1433-301e-4a5a-ca84297b7a66","document_version_independent_id":"2187b1df-e919-dcb8-3c5d-9436f9b6eb4b","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/registration/Type/Constructor/constructor.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/constructor.md","rawTitle":"

Constructor Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Constructor Injection","uid":"Tutorial.Injection.Constructor","updated_at":"2019-04-05 01:56 AM","wordCount":396},{"url":"/tutorials/registration/type/constructor/param_count/","path":"tutorials/registration/type/constructor/param_count/index.html","source_path":"tutorials/registration/Type/Constructor/param_count.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_count/","conceptual":"\n

By Number of Parameters

\n

Selecting constructor by number of parameters is the simplest form of selection. You could use this selection method if the constructor you invoking has unique number of parameters.

\n

Type of Parameter as Contract Type

\n

This method is useful when you are working on a Type that takes certain number of parameters but you don't care what these parameter types are.

\n

Parameters

\n

In a case like this you could use Resolve.Parameter() to specify that you want a parameter at this position to be resolved. For example, consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

It has several constructors with different number of parameters each. Normally, the container would try to run the most complex constructor, but if you want to invoke the one with just a single parameter you need to register it like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this registration you configure the container to invoke a constructor that takes just one parameter. The parameter is resolved using a contract with a type of the parameter and no name.

\n

Now if you resolve the type, the container will invoke that constructor and inject the parameter:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Generic Parameters

\n

The same method as above, could be used to invoke constructors with generic parameters. Consider the following class:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

To configure the container to invoke the first constructor you would execute the same code with exception of how you pass in a type of the contract. Registration of an open generic requires a conventional method call:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

When resolved, the container will invoke the first constructor and inject it with created instance of Object:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Parameter dependencies with Contract Name

\n

When configuring constructors with the method described above you should be mindful of parameter annotations and contract names these annotations might provide.

\n

When implicitly injecting a parameter, the container will recognize all metadata the parameter is annotated with and will properly inject it with correct contract. When you add an InjectionMember to configure the parameter you override all these annotations.

\n

If you look at the second constructor of SampleType<T> you will notice that the first parameter is marked with Dependency attribute. Normally, when resolving that parameter, Unity will, if present, use Name of the Contract the attribute provides. But when you register it as in the following example, you will override that contract:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

When resolved, Unity will execute the constructor but instead of dependency with contract name one it will use contract with no name.

\n

If you need to, you could override contract name explicitly as in the following example:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

If you'd like to preserve contracts from annotations, you need to use one of the following selection methods instead.

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_count.md","depot_name":".","document_id":"f933f186-0833-8a03-bf07-0a52c0085a6b","document_version_independent_id":"12c8b824-4e4b-7d3e-eb49-04960e9f8ba3","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/param_count.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_count.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_count.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor By Number of Parameters","uid":"Tutorial.Injection.Constructor.Count","updated_at":"2019-03-10 08:00 PM","wordCount":555},{"url":"/tutorials/registration/type/constructor/param_none/","path":"tutorials/registration/type/constructor/param_none/index.html","source_path":"tutorials/registration/Type/Constructor/param_none.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_none/","conceptual":"\n

A Default called a constructor with no parameters. It could be explicitly defined on a Type or if Type has no defined constructors, C# will implicitly create one for you.

\n

Invoking Default Constructor

\n

To configure resolution of a Type with a default constructor you need to register that Type with Injection Constructor Member which takes no parameters.

\n

Class Service

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Class Service is a plain type with three accessible constructors. First constructor is a default constructor with no parameters, second and third constructors take one parameter each.

\n

Registering Service

\n

If you try to resolve this class with no registration, Unity will select one of the constructors with parameter. You can not guarantee which one it will select because both have the same number of parameters and each could be satisfied with dependencies.

\n
\n
TIP
\n

If Diagnostic is enabled, it will throw an ambiguous constructor exception.

\n
\n

To prevent ambiguity, or if you need to execute default constructor, you can register this Type and instruct the container to invoke default constructor during resolution. In simplest form this registration will look like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n
\n
NOTE
\n

Of corse you could add other instructions like mapping, name, etc. to the registration but for simplicity it is omitted in this example.

\n
\n

Resolving Service

\n

Once you register the Service with the container, you can resolve it normally:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

At first resolution the container will create a pipeline which invokes a default constructor to create the Service and will be using it for all subsequent resolutions.

\n

Default Generic Constructor

\n

Unity can register and create Generic types. It allows to register Closed and Open Generics and can resolve constructed types based on these.

\n

Class Service<T>

\n

The principle for registering of default constructor is exactly the same as for plain types. Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Class Service<T> is an open generic type with two constructors. First constructor is a default constructor with no parameters and second takes one parameter.

\n

Registering Service<T>

\n

Normally, Unity will create this Type by executing most complex constructor. To force Unity to use default constructor you need to register Service<T> and instruct the container to invoke it during resolution. You can register constructed generic based on Service<T> like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Or you can register Open Generic Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Resolving Service<T>

\n

If you resolve Service<object>:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

either registration will invoke the default constructor.

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_none.md","depot_name":".","document_id":"44080f41-8f6d-eb44-2550-bf960bb69e34","document_version_independent_id":"d1683f3a-6ff8-ac65-c68d-8171d54657d8","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/registration/Type/Constructor/param_none.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_none.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_none.md","rawTitle":"

Default Constructors

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Default Constructor","uid":"Tutorial.Injection.Constructor.Default","updated_at":"2019-04-05 01:56 AM","wordCount":497},{"url":"/tutorials/registration/type/constructor/param_types/","path":"tutorials/registration/type/constructor/param_types/index.html","source_path":"tutorials/registration/Type/Constructor/param_types.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_types/","conceptual":"\n

Select Constructor by Parameter types

\n

Exact Match

\n

Compatible Type Match

\n

Contracts with Name

\n

Type Matching exactly

\n

Compatible Implementation

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_types.md","depot_name":".","document_id":"a43b0380-00c5-f9f0-13a0-bcd8dfecb41b","document_version_independent_id":"cbce70bb-3d73-b545-7ca7-bfc6f0fed947","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/param_types.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_types.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_types.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor by Parameter Types","uid":"Tutorial.Injection.Constructor.Types","updated_at":"2019-03-10 08:00 PM","wordCount":39},{"url":"/tutorials/registration/type/constructor/param_values/","path":"tutorials/registration/type/constructor/param_values/index.html","source_path":"tutorials/registration/Type/Constructor/param_values.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_values/","conceptual":"\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_values.md","depot_name":".","document_id":"cd589f0b-bc03-758c-0d5f-b570dc451473","document_version_independent_id":"a6cf7331-25f9-4155-a93b-1b9b1d859246","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/param_values.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_values.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_values.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor by Parameter Values","uid":"Tutorial.Injection.Constructor.Values","updated_at":"2019-03-10 08:00 PM","wordCount":20},{"url":"/tutorials/registration/type/field/","path":"tutorials/registration/type/field/index.html","source_path":"tutorials/registration/Type/field.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/field/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/field.md","depot_name":".","document_id":"c2a3677e-e25a-23fc-1d1d-afcf1cae5b9c","document_version_independent_id":"21bedaea-483b-16e5-6828-da96ffd1aa89","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/field.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/field.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/field.md","rawTitle":"

Field Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Field Injection","uid":"Tutorial.Injection.Field","updated_at":"2019-03-07 05:22 AM","wordCount":0},{"url":"/tutorials/registration/type/injection/default/","path":"tutorials/registration/type/injection/default/index.html","source_path":"tutorials/registration/Type/Injection/default.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/injection/default/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/default.md","depot_name":".","document_id":"f0ac9ade-1043-129a-d73a-91953ac7b231","document_version_independent_id":"14895510-22b9-f067-0a3b-42bb0235c831","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/default.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/default.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/default.md","rawTitle":"

Support for Default Values

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Support for Default Values","uid":"Tutorial.Injection.Default","updated_at":"2019-03-11 01:08 AM","wordCount":0},{"url":"/tutorials/registration/type/injection/injected/","path":"tutorials/registration/type/injection/injected/index.html","source_path":"tutorials/registration/Type/Injection/injected.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/injection/injected/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injected.md","depot_name":".","document_id":"32c573ec-454c-caaa-9c9c-3888e8929b0d","document_version_independent_id":"a328b057-ba1f-20ac-e60a-04ea7bebc1bf","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/injected.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injected.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/injected.md","rawTitle":"

Injecting Dependency Values

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Injecting Dependency Values","uid":"Tutorial.Injection.Injected","updated_at":"2019-03-11 01:08 AM","wordCount":0},{"url":"/tutorials/registration/type/injection/injection/","path":"tutorials/registration/type/injection/injection/index.html","source_path":"tutorials/registration/Type/Injection/injection.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/injection/injection/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injection.md","depot_name":".","document_id":"22387587-d7a8-4e6a-654c-d8728d074653","document_version_independent_id":"09bc78cd-f176-4aaa-41cd-119e51ab8aca","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/injection.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injection.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/injection.md","rawTitle":"

Dependency Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Dependency Injection","uid":"Tutorial.Injection","updated_at":"2019-03-11 01:08 AM","wordCount":0},{"url":"/tutorials/registration/type/injection/resolved/","path":"tutorials/registration/type/injection/resolved/index.html","source_path":"tutorials/registration/Type/Injection/resolved.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/injection/resolved/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/resolved.md","depot_name":".","document_id":"17dac8cb-7105-cb4b-9341-a478df7a564e","document_version_independent_id":"4afe44d5-4340-acd2-3533-c8fe0984dbcb","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/resolved.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/resolved.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/resolved.md","rawTitle":"

Resolving Dependency Values

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Resolving Dependency Values","uid":"Tutorial.Injection.Resolved","updated_at":"2019-03-11 01:08 AM","wordCount":0},{"url":"/tutorials/registration/type/method/","path":"tutorials/registration/type/method/index.html","source_path":"tutorials/registration/Type/method.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/method/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/method.md","depot_name":".","document_id":"ece87da2-2138-25a2-4b62-f09b94f500d9","document_version_independent_id":"df634c41-a696-a56e-3edb-6be9079a6660","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/method.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/method.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/method.md","rawTitle":"

Method Invocation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Method Injection","uid":"Tutorial.Injection.Method","updated_at":"2019-03-07 05:22 AM","wordCount":0},{"url":"/tutorials/registration/type/parameter/","path":"tutorials/registration/type/parameter/index.html","source_path":"tutorials/registration/Type/parameter.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/parameter/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/parameter.md","depot_name":".","document_id":"cb8b1b59-03db-0e46-fead-1d5d5a92812f","document_version_independent_id":"a8fc56d0-58e8-03ea-b38f-ad68a88818c2","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/parameter.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/parameter.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/parameter.md","rawTitle":"

Parameter Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Parameter Injection","uid":"Tutorial.Injection.Parameter","updated_at":"2019-03-07 05:22 AM","wordCount":0},{"url":"/tutorials/registration/type/property/","path":"tutorials/registration/type/property/index.html","source_path":"tutorials/registration/Type/property.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/property/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/property.md","depot_name":".","document_id":"e1fdee6b-4cc3-4110-4ed7-a825595503d1","document_version_independent_id":"d1d79004-065d-bfbf-d2b1-f3c2a6da14df","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/property.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/property.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/property.md","rawTitle":"

Property Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Injection","uid":"Tutorial.Injection.Property","updated_at":"2019-03-07 05:22 AM","wordCount":0},{"url":"/tutorials/registration/type/registration/","path":"tutorials/registration/type/registration/index.html","source_path":"tutorials/registration/Type/registration.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/registration/","conceptual":"\n

Type registration is where all the Unity magic is happening. It provides complete and flexible control of all aspects of type creation and management.

\n

When a Type is registered Unity creates a contract (a registration) consisting of a Type, a Name, and instructions on how this contract should be fulfilled when requested.

\n

Minimum Registration Requirements

\n

The only required part of the registration is a registered Type itself. Theoretically you could register a Type like this:

\n
container.RegisterType<Service>();\n
\n

This would tell the container to use all defaults when creating Service. Registrations like this do not make much sense. If creation process does not require any customization, all that time spent on registering such Type is wasted. It is measurably faster to resolve a plain Type from the container if it is not registered at all.

\n

When a Type is annotated with injection attributes it does not require registration either. If you are satisfied with annotated selections, appropriate constructor and all other members are annotated, and you do not require lifetime management for created instances, the Type should not be registered.

\n

You should only register types if at least one of the following is true:

\n\n

Creating Registration Contracts

\n

Simplest form of a contract is a registration without a Name ( the Name is null ). This type of registration is called default and in some cases is used as a prototype during resolution of Generic types (hence name default).

\n

A contract could have a Name. The Name could be any arbitrary string of one or more characters. The simple named contract could be registered like this:

\n
container.RegisterType<Service>("Contract Name");\n
\n
\n
NOTE
\n

It is not recommended to use empty strings as names.

\n
\n

Creating Type Mapping

\n

A mapping instructs Unity on how to satisfy the contract and what implementation Type should be used to create an object. For example is you want to associate an interface IService with implementation Service you would register it like this:

\n
container.RegisterType<IService, Service>();\n
\n

Or you could register multiple implementations for the same service:

\n
container.RegisterType<IService, MailService>("Email");\ncontainer.RegisterType<IService, WebService>("WebMail");\ncontainer.RegisterType<IService, SecureService>("Encrypted");\n
\n

For more information see <xref:Tutorial.Registration.Mapping>

\n

Lifetime Management

\n

Unity provides wide variety of lifetime managers compatible with type registrations. Each of these managers provide unique algorithm for instance management.

\n

In example above services are created on each request. In most cases it is desireable to create services only once. To create singleton services appropriate lifetime managers must be added to the registration:

\n
container.RegisterType<IService, MailService>("Email", TypeLifetime.Singleton);\ncontainer.RegisterType<IService, WebService>("WebMail", TypeLifetime.Singleton);\ncontainer.RegisterType<IService, SecureService>("Encrypted", TypeLifetime.Singleton);\n
\n

For more information about lifetime management see Lifetime Management

\n

Creation Pipeline

\n

Unity instantiates an objects by creating a resolver pipeline and executing it with passed in injection values. Each pipeline consists of a several steps with each step performing part of the initialization.

\n

How the pipeline is assembled and what values are injected is controlled by collection of Injection Member objects passed to registration method. The normal steps of the object creation process are:

\n

Injection Instructions

\n

During the registration you could Configure the container to select certain constructor, initialize properties and fields, call methods, and inject values and instructions for dependencies. All this is done by passing appropriate Injection Members to the registration. For more information see:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/registration.md","depot_name":".","document_id":"78bfd467-15ee-c33f-03fe-7bf8e5fa4acf","document_version_independent_id":"6550f935-d2d3-ea0d-a876-56627397815d","gitcommit":"https://github.com/unitycontainer/documentation/blob/2db5f0db6ca55d08f45572868da0e40bb64f7bc0/tutorials/registration/Type/registration.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/registration.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/registration.md","rawTitle":"

Type Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Type Registration","uid":"Tutorial.Registration.Type","updated_at":"2019-03-11 12:52 AM","wordCount":576},{"url":"/tutorials/toc.json","path":"tutorials/toc.json","source_path":"tutorials/toc.yml","locale":"en-us"}]} \ No newline at end of file diff --git a/_site/.xrefmap.json b/_site/.xrefmap.json new file mode 100644 index 0000000..d515374 --- /dev/null +++ b/_site/.xrefmap.json @@ -0,0 +1 @@ +{"references":[{"uid":"Article.Application.Design","href":"https:///articles/application/","name":"Article.Application.Design","name":"Article.Application.Design"},{"uid":"Article.Change.Log","href":"https:///articles/changelog/","name":"Article.Change.Log","name":"Article.Change.Log"},{"uid":"Article.Unity.Design","href":"https:///articles/design/","name":"Article.Unity.Design","name":"Article.Unity.Design"},{"uid":"Article.Unity.Features","href":"https:///articles/features/","name":"Article.Unity.Features","name":"Article.Unity.Features"},{"uid":"Article.Unity.History","href":"https:///articles/history/","name":"Article.Unity.History","name":"Article.Unity.History"},{"uid":"Article.Unity.Install","href":"https:///articles/installation/","name":"Article.Unity.Install","name":"Article.Unity.Install"},{"uid":"Article.Unity.Introduction","href":"https:///articles/introduction/","name":"Article.Unity.Introduction","name":"Article.Unity.Introduction"},{"uid":"Article.Unity.Using","href":"https:///articles/quickstart/","name":"Article.Unity.Using","name":"Article.Unity.Using"},{"uid":"Specification.Constructor","href":"https:///specs/constructor/","name":"Specification.Constructor","name":"Specification.Constructor"},{"uid":"Specification.Field","href":"https:///specs/field/","name":"Specification.Field","name":"Specification.Field"},{"uid":"Specification.Method","href":"https:///specs/method/","name":"Specification.Method","name":"Specification.Method"},{"uid":"Specification.Property","href":"https:///specs/property/","name":"Specification.Property","name":"Specification.Property"},{"uid":"Specification.Summary","href":"https:///specs/summary/","name":"Specification.Summary","name":"Specification.Summary"},{"uid":"Specification.Unity","href":"https:///specs/specification/","name":"Unity Container Specification","name":"Unity Container Specification"},{"uid":"Specification.Workflow","href":"https:///specs/workflow/","name":"Workflow","name":"Workflow"},{"uid":"Tutorial.Annotation","href":"https:///tutorials/annotation/annotation/","name":"Attributed Injection Model","name":"Attributed Injection Model"},{"uid":"Tutorial.Annotation.Constructor","href":"https:///tutorials/annotation/constructor/","name":"Annotating Type for Constructor Injection","name":"Annotating Type for Constructor Injection"},{"uid":"Tutorial.Annotation.Field","href":"https:///tutorials/annotation/field/","name":"Annotating types for Field injection","name":"Annotating types for Field injection"},{"uid":"Tutorial.Annotation.Method","href":"https:///tutorials/annotation/method/","name":"Tutorial.Annotation.Method","name":"Tutorial.Annotation.Method"},{"uid":"Tutorial.Annotation.Parameter","href":"https:///tutorials/annotation/parameter/","name":"Tutorial.Annotation.Parameter","name":"Tutorial.Annotation.Parameter"},{"uid":"Tutorial.Annotation.Property","href":"https:///tutorials/annotation/property/","name":"Property Injection Annotation","name":"Property Injection Annotation"},{"uid":"Tutorial.BuildUp","href":"https:///tutorials/composition/buildup/buildup/","name":"Object Build Up","name":"Object Build Up"},{"uid":"Tutorial.Collections","href":"https:///tutorials/composition/collections/","name":"Collections","name":"Collections"},{"uid":"Tutorial.Composition","href":"https:///tutorials/composition/composition/","name":"Composition","name":"Composition"},{"uid":"Tutorial.Container.Hierarchy","href":"https:///tutorials/hierarchies/","name":"Container Hierarchy","name":"Container Hierarchy"},{"uid":"Tutorial.Deferred","href":"https:///tutorials/composition/generics/deferred/","name":"Deferred Resolution","name":"Deferred Resolution"},{"uid":"Tutorial.Extension.Activation","href":"https:///tutorials/extensions/activation/","name":"Force Activation Extension","name":"Force Activation Extension"},{"uid":"Tutorial.Extension.Compilation","href":"https:///tutorials/extensions/compilation/","name":"Force Compilation Extension","name":"Force Compilation Extension"},{"uid":"Tutorial.Extension.Diagnostic","href":"https:///tutorials/extensions/diagnostic/","name":"Diagnostic Extension","name":"Diagnostic Extension"},{"uid":"Tutorial.Extension.Legacy","href":"https:///tutorials/extensions/legacy/","name":"Legacy Extension","name":"Legacy Extension"},{"uid":"Tutorial.Extensions","href":"https:///tutorials/extensions/extensions/","name":"Unity Extensions","name":"Unity Extensions"},{"uid":"Tutorial.Generics","href":"https:///tutorials/composition/generics/generics/","name":"Generics","name":"Generics"},{"uid":"Tutorial.Generics.Metadata","href":"https:///tutorials/composition/generics/metadata/","name":"Metadata","name":"Metadata"},{"uid":"Tutorial.Injection","href":"https:///tutorials/registration/type/injection/injection/","name":"Dependency Injection","name":"Dependency Injection"},{"uid":"Tutorial.Injection.Constructor","href":"https:///tutorials/registration/type/constructor/constructor/","name":"Constructor Injection","name":"Constructor Injection"},{"uid":"Tutorial.Injection.Constructor.Annotation","href":"https:///tutorials/registration/type/constructor/annotation/","name":"Select Constructor By Attribute Annotation","name":"Select Constructor By Attribute Annotation"},{"uid":"Tutorial.Injection.Constructor.Count","href":"https:///tutorials/registration/type/constructor/param_count/","name":"Select Constructor By Number of Parameters","name":"Select Constructor By Number of Parameters"},{"uid":"Tutorial.Injection.Constructor.Default","href":"https:///tutorials/registration/type/constructor/param_none/","name":"Default Constructor","name":"Default Constructor"},{"uid":"Tutorial.Injection.Constructor.Implicit","href":"https:///tutorials/registration/type/constructor/automatic/","name":"Automatic Constructor Injection","name":"Automatic Constructor Injection"},{"uid":"Tutorial.Injection.Constructor.Types","href":"https:///tutorials/registration/type/constructor/param_types/","name":"Select Constructor by Parameter Types","name":"Select Constructor by Parameter Types"},{"uid":"Tutorial.Injection.Constructor.Values","href":"https:///tutorials/registration/type/constructor/param_values/","name":"Select Constructor by Parameter Values","name":"Select Constructor by Parameter Values"},{"uid":"Tutorial.Injection.Default","href":"https:///tutorials/registration/type/injection/default/","name":"Support for Default Values","name":"Support for Default Values"},{"uid":"Tutorial.Injection.Field","href":"https:///tutorials/registration/type/field/","name":"Field Injection","name":"Field Injection"},{"uid":"Tutorial.Injection.Injected","href":"https:///tutorials/registration/type/injection/injected/","name":"Injecting Dependency Values","name":"Injecting Dependency Values"},{"uid":"Tutorial.Injection.Method","href":"https:///tutorials/registration/type/method/","name":"Method Injection","name":"Method Injection"},{"uid":"Tutorial.Injection.Parameter","href":"https:///tutorials/registration/type/parameter/","name":"Parameter Injection","name":"Parameter Injection"},{"uid":"Tutorial.Injection.Property","href":"https:///tutorials/registration/type/property/","name":"Property Injection","name":"Property Injection"},{"uid":"Tutorial.Injection.Resolved","href":"https:///tutorials/registration/type/injection/resolved/","name":"Resolving Dependency Values","name":"Resolving Dependency Values"},{"uid":"Tutorial.Lazy","href":"https:///tutorials/composition/generics/lazy/","name":"Lazy","name":"Lazy"},{"uid":"Tutorial.Lifetime","href":"https:///tutorials/lifetime/lifetime/","name":"Lifetime Management","name":"Lifetime Management"},{"uid":"Tutorial.Lifetime.Container","href":"https:///tutorials/lifetime/container/","name":"Per Container Lifetime","name":"Per Container Lifetime"},{"uid":"Tutorial.Lifetime.Container.Transient","href":"https:///tutorials/lifetime/container_transient/","name":"Container Lifetime","name":"Container Lifetime"},{"uid":"Tutorial.Lifetime.External","href":"https:///tutorials/lifetime/external/","name":"External Lifetime","name":"External Lifetime"},{"uid":"Tutorial.Lifetime.Hierarchical","href":"https:///tutorials/lifetime/hierarchical/","name":"Hierarchical Lifetime","name":"Hierarchical Lifetime"},{"uid":"Tutorial.Lifetime.Managers","href":"https:///tutorials/lifetime/managers/","name":"Lifetime Managers","name":"Lifetime Managers"},{"uid":"Tutorial.Lifetime.Resolve","href":"https:///tutorials/lifetime/resolve/","name":"Per Resolve Lifetime","name":"Per Resolve Lifetime"},{"uid":"Tutorial.Lifetime.Singleton","href":"https:///tutorials/lifetime/singleton/","name":"Singleton Lifetime","name":"Singleton Lifetime"},{"uid":"Tutorial.Lifetime.Thread","href":"https:///tutorials/lifetime/thread/","name":"Per Thread Lifetime","name":"Per Thread Lifetime"},{"uid":"Tutorial.Lifetime.Transient","href":"https:///tutorials/lifetime/transient/","name":"Transient Lifetime","name":"Transient Lifetime"},{"uid":"Tutorial.Mapping","href":"https:///tutorials/composition/mapping/mapping/","name":"Type Mapping","name":"Type Mapping"},{"uid":"Tutorial.Mapping.Generic","href":"https:///tutorials/composition/mapping/generic/","name":"Generic Type Mapping","name":"Generic Type Mapping"},{"uid":"Tutorial.Mapping.Implementation","href":"https:///tutorials/composition/mapping/implementation/","name":"Service to Implementation Mapping","name":"Service to Implementation Mapping"},{"uid":"Tutorial.Registration","href":"https:///tutorials/registration/registration/","name":"Registration","name":"Registration"},{"uid":"Tutorial.Registration.Factory","href":"https:///tutorials/registration/factory/","name":"Factory Registration","name":"Factory Registration"},{"uid":"Tutorial.Registration.Instance","href":"https:///tutorials/registration/instance/","name":"Instance Registration","name":"Instance Registration"},{"uid":"Tutorial.Registration.Metadata","href":"https:///tutorials/registration/metadata/","name":"Registration Metadata","name":"Registration Metadata"},{"uid":"Tutorial.Registration.Type","href":"https:///tutorials/registration/type/registration/","name":"Type Registration","name":"Type Registration"},{"uid":"Tutorial.Resolution","href":"https:///tutorials/composition/resolution/resolution/","name":"Object Resolution","name":"Object Resolution"},{"uid":"Tutorial.Resolution.Override","href":"https:///tutorials/composition/overrides/override/","name":"Resolution Override","name":"Resolution Override"},{"uid":"Tutorial.Resolution.Override.Dependency","href":"https:///tutorials/composition/overrides/dependency/","name":"Dependency Override","name":"Dependency Override"},{"uid":"Tutorial.Resolution.Override.Field","href":"https:///tutorials/composition/overrides/field/","name":"Field Overrides","name":"Field Overrides"},{"uid":"Tutorial.Resolution.Override.Parameter","href":"https:///tutorials/composition/overrides/parameter/","name":"Parameter Override","name":"Parameter Override"},{"uid":"Tutorial.Resolution.Override.Property","href":"https:///tutorials/composition/overrides/property/","name":"Property Override","name":"Property Override"},{"uid":"Tutorial.Resolution.Selection","href":"https:///tutorials/composition/selection/selection/","name":"Selection","name":"Selection"},{"uid":"Tutorial.Resolution.Type","href":"https:///tutorials/composition/resolution/type/","name":"Resolution By Type","name":"Resolution By Type"},{"uid":"Tutorial.Selection.Constructor","href":"https:///tutorials/composition/selection/constructor/","name":"Automatic Constructor Selection","name":"Automatic Constructor Selection"},{"uid":"Tutorial.Terms","href":"https:///tutorials/definitions/","name":"Terms and Definitions","name":"Terms and Definitions"}],"properties":{"tags":["/"]}} \ No newline at end of file diff --git a/_site/api/index.html b/_site/api/index.html new file mode 100644 index 0000000..6b37476 --- /dev/null +++ b/_site/api/index.html @@ -0,0 +1 @@ +{"content":"\n

This documentation is generated by DocFX

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"11/26/2017","updated_at_date_time":"2017-11-26T02:59:56Z"},"_path":"api/index.html","_tocRel":"toc.json","canonical_url":"https:///en-us/api/","conceptual":"\n

This documentation is generated by DocFX

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/api/index.md","depot_name":".","document_id":"b900a6ee-1d3b-cc19-ca58-f621b5ddfbff","document_version_independent_id":"62c4b9bf-c97a-4afb-633c-37a573696248","gitcommit":"https://github.com/unitycontainer/documentation/blob/fc9fe03376dd8ca08cf491c586c6f6e4e720545a/api/index.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/api/index.md","original_content_git_url_template":"{repo}/blob/{branch}/api/index.md","rawTitle":"

API Documentation Section

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"API Documentation Section","updated_at":"2017-11-26 02:59 AM","wordCount":6},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\_themes"} \ No newline at end of file diff --git a/_site/api/toc.json b/_site/api/toc.json new file mode 100644 index 0000000..b0ca3d5 --- /dev/null +++ b/_site/api/toc.json @@ -0,0 +1 @@ +{"metadata":{"_appTitle":"Unity Container","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appFaviconPath":"images/favicon.png"},"items":[{"name":"Microsoft.Practices.Unity.Configuration","uid":"Microsoft.Practices.Unity.Configuration","items":[{"name":"AliasElement","uid":"Microsoft.Practices.Unity.Configuration.AliasElement"},{"name":"AliasElementCollection","uid":"Microsoft.Practices.Unity.Configuration.AliasElementCollection"},{"name":"ArrayElement","uid":"Microsoft.Practices.Unity.Configuration.ArrayElement"},{"name":"AssemblyElement","uid":"Microsoft.Practices.Unity.Configuration.AssemblyElement"},{"name":"AssemblyElementCollection","uid":"Microsoft.Practices.Unity.Configuration.AssemblyElementCollection"},{"name":"ConstructorElement","uid":"Microsoft.Practices.Unity.Configuration.ConstructorElement"},{"name":"ContainerConfiguringElementCollection","uid":"Microsoft.Practices.Unity.Configuration.ContainerConfiguringElementCollection"},{"name":"ContainerElement","uid":"Microsoft.Practices.Unity.Configuration.ContainerElement"},{"name":"ContainerElementCollection","uid":"Microsoft.Practices.Unity.Configuration.ContainerElementCollection"},{"name":"ContainerExtensionElement","uid":"Microsoft.Practices.Unity.Configuration.ContainerExtensionElement"},{"name":"ContainerExtensionElementCollection","uid":"Microsoft.Practices.Unity.Configuration.ContainerExtensionElementCollection"},{"name":"DependencyElement","uid":"Microsoft.Practices.Unity.Configuration.DependencyElement"},{"name":"ExtensionConfigurationElement","uid":"Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElement"},{"name":"ExtensionConfigurationElementCollection","uid":"Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElementCollection"},{"name":"InjectionMemberElementCollection","uid":"Microsoft.Practices.Unity.Configuration.InjectionMemberElementCollection"},{"name":"InstanceElement","uid":"Microsoft.Practices.Unity.Configuration.InstanceElement"},{"name":"InstanceElementCollection","uid":"Microsoft.Practices.Unity.Configuration.InstanceElementCollection"},{"name":"LifetimeElement","uid":"Microsoft.Practices.Unity.Configuration.LifetimeElement"},{"name":"MethodElement","uid":"Microsoft.Practices.Unity.Configuration.MethodElement"},{"name":"NamedElement","uid":"Microsoft.Practices.Unity.Configuration.NamedElement"},{"name":"NamespaceElement","uid":"Microsoft.Practices.Unity.Configuration.NamespaceElement"},{"name":"NamespaceElementCollection","uid":"Microsoft.Practices.Unity.Configuration.NamespaceElementCollection"},{"name":"OptionalElement","uid":"Microsoft.Practices.Unity.Configuration.OptionalElement"},{"name":"ParameterElement","uid":"Microsoft.Practices.Unity.Configuration.ParameterElement"},{"name":"ParameterElementCollection","uid":"Microsoft.Practices.Unity.Configuration.ParameterElementCollection"},{"name":"ParameterValueElementCollection","uid":"Microsoft.Practices.Unity.Configuration.ParameterValueElementCollection"},{"name":"PropertyElement","uid":"Microsoft.Practices.Unity.Configuration.PropertyElement"},{"name":"RegisterElement","uid":"Microsoft.Practices.Unity.Configuration.RegisterElement"},{"name":"RegisterElementCollection","uid":"Microsoft.Practices.Unity.Configuration.RegisterElementCollection"},{"name":"SectionExtensionElement","uid":"Microsoft.Practices.Unity.Configuration.SectionExtensionElement"},{"name":"SectionExtensionElementCollection","uid":"Microsoft.Practices.Unity.Configuration.SectionExtensionElementCollection"},{"name":"UnityConfigurationSection","uid":"Microsoft.Practices.Unity.Configuration.UnityConfigurationSection"},{"name":"UnityContainerExtensions","uid":"Microsoft.Practices.Unity.Configuration.UnityContainerExtensions"},{"name":"ValueElement","uid":"Microsoft.Practices.Unity.Configuration.ValueElement"}]},{"name":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers","items":[{"name":"ConfigurationElementExtensions","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ConfigurationElementExtensions"},{"name":"DictionaryExtensions","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.DictionaryExtensions"},{"name":"TypeResolver","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolver"},{"name":"TypeResolverImpl","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolverImpl"},{"name":"UnknownElementHandlerMap","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.UnknownElementHandlerMap`1","name.vb":"UnknownElementHandlerMap(Of TContainingElement)"},{"name":"ValueElementHelper","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ValueElementHelper"},{"name":"XmlWriterExtensions","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.XmlWriterExtensions"}]},{"name":"Unity","uid":"Unity","items":[{"name":"DefaultLifetime","uid":"Unity.DefaultLifetime"},{"name":"DependencyAttribute","uid":"Unity.DependencyAttribute"},{"name":"DependencyResolutionAttribute","uid":"Unity.DependencyResolutionAttribute"},{"name":"Diagnostic","uid":"Unity.Diagnostic"},{"name":"DiagnosticExtensions","uid":"Unity.DiagnosticExtensions"},{"name":"ExtensionExtensions","uid":"Unity.ExtensionExtensions"},{"name":"FactoryLifetime","uid":"Unity.FactoryLifetime"},{"name":"ForceActivation","uid":"Unity.ForceActivation"},{"name":"ForceCompillation","uid":"Unity.ForceCompillation"},{"name":"IContainerRegistration","uid":"Unity.IContainerRegistration"},{"name":"Inject","uid":"Unity.Inject"},{"name":"InjectionConstructorAttribute","uid":"Unity.InjectionConstructorAttribute"},{"name":"InjectionMethodAttribute","uid":"Unity.InjectionMethodAttribute"},{"name":"InstanceLifetime","uid":"Unity.InstanceLifetime"},{"name":"Invoke","uid":"Unity.Invoke"},{"name":"IUnityContainer","uid":"Unity.IUnityContainer"},{"name":"IUnityContainerAsync","uid":"Unity.IUnityContainerAsync"},{"name":"MemberSelector","uid":"Unity.MemberSelector`2","name.vb":"MemberSelector(Of TMember, TParam)"},{"name":"OptionalDependencyAttribute","uid":"Unity.OptionalDependencyAttribute"},{"name":"Override","uid":"Unity.Override"},{"name":"ResolutionFailedException","uid":"Unity.ResolutionFailedException"},{"name":"Resolve","uid":"Unity.Resolve"},{"name":"SupportedMembers","uid":"Unity.SupportedMembers"},{"name":"TypeLifetime","uid":"Unity.TypeLifetime"},{"name":"UnityContainer","uid":"Unity.UnityContainer"},{"name":"UnityContainerAsyncExtensions","uid":"Unity.UnityContainerAsyncExtensions"},{"name":"UnityContainerExtensions","uid":"Unity.UnityContainerExtensions"}]},{"name":"Unity.Builder","uid":"Unity.Builder","items":[{"name":"BuilderContext","uid":"Unity.Builder.BuilderContext"},{"name":"BuilderContext.ExecutePlanDelegate","uid":"Unity.Builder.BuilderContext.ExecutePlanDelegate"},{"name":"BuilderContext.ResolvePlanDelegate","uid":"Unity.Builder.BuilderContext.ResolvePlanDelegate"},{"name":"BuilderStage","uid":"Unity.Builder.BuilderStage"},{"name":"NamedTypeBuildKey","uid":"Unity.Builder.NamedTypeBuildKey"},{"name":"NamedTypeBuildKey","uid":"Unity.Builder.NamedTypeBuildKey`1","name.vb":"NamedTypeBuildKey(Of T)"},{"name":"SelectionStage","uid":"Unity.Builder.SelectionStage"},{"name":"UnityBuildStage","uid":"Unity.Builder.UnityBuildStage"}]},{"name":"Unity.Configuration","uid":"Unity.Configuration","items":[{"name":"AliasElement","uid":"Unity.Configuration.AliasElement"},{"name":"AliasElementCollection","uid":"Unity.Configuration.AliasElementCollection"},{"name":"ArrayElement","uid":"Unity.Configuration.ArrayElement"},{"name":"AssemblyElement","uid":"Unity.Configuration.AssemblyElement"},{"name":"AssemblyElementCollection","uid":"Unity.Configuration.AssemblyElementCollection"},{"name":"ConstructorElement","uid":"Unity.Configuration.ConstructorElement"},{"name":"ContainerConfiguringElementCollection","uid":"Unity.Configuration.ContainerConfiguringElementCollection"},{"name":"ContainerElement","uid":"Unity.Configuration.ContainerElement"},{"name":"ContainerElementCollection","uid":"Unity.Configuration.ContainerElementCollection"},{"name":"ContainerExtensionElement","uid":"Unity.Configuration.ContainerExtensionElement"},{"name":"ContainerExtensionElementCollection","uid":"Unity.Configuration.ContainerExtensionElementCollection"},{"name":"DependencyElement","uid":"Unity.Configuration.DependencyElement"},{"name":"ExtensionElementMap","uid":"Unity.Configuration.ExtensionElementMap"},{"name":"FieldElement","uid":"Unity.Configuration.FieldElement"},{"name":"IDefaultPolicy","uid":"Unity.Configuration.IDefaultPolicy"},{"name":"InjectionMemberElementCollection","uid":"Unity.Configuration.InjectionMemberElementCollection"},{"name":"InstanceElement","uid":"Unity.Configuration.InstanceElement"},{"name":"InstanceElementCollection","uid":"Unity.Configuration.InstanceElementCollection"},{"name":"LifetimeElement","uid":"Unity.Configuration.LifetimeElement"},{"name":"MethodElement","uid":"Unity.Configuration.MethodElement"},{"name":"NamespaceElement","uid":"Unity.Configuration.NamespaceElement"},{"name":"NamespaceElementCollection","uid":"Unity.Configuration.NamespaceElementCollection"},{"name":"OptionalElement","uid":"Unity.Configuration.OptionalElement"},{"name":"ParameterElement","uid":"Unity.Configuration.ParameterElement"},{"name":"ParameterElementCollection","uid":"Unity.Configuration.ParameterElementCollection"},{"name":"ParameterValueElementCollection","uid":"Unity.Configuration.ParameterValueElementCollection"},{"name":"PropertyElement","uid":"Unity.Configuration.PropertyElement"},{"name":"RegisterElement","uid":"Unity.Configuration.RegisterElement"},{"name":"RegisterElementCollection","uid":"Unity.Configuration.RegisterElementCollection"},{"name":"SectionExtensionElement","uid":"Unity.Configuration.SectionExtensionElement"},{"name":"SectionExtensionElementCollection","uid":"Unity.Configuration.SectionExtensionElementCollection"},{"name":"UnityConfigurationSection","uid":"Unity.Configuration.UnityConfigurationSection"},{"name":"UnityContainerExtensions","uid":"Unity.Configuration.UnityContainerExtensions"},{"name":"ValueElement","uid":"Unity.Configuration.ValueElement"}]},{"name":"Unity.Configuration.Abstractions","uid":"Unity.Configuration.Abstractions","items":[{"name":"ContainerConfiguringElement","uid":"Unity.Configuration.Abstractions.ContainerConfiguringElement"},{"name":"DeserializableConfigurationElement","uid":"Unity.Configuration.Abstractions.DeserializableConfigurationElement"},{"name":"DeserializableConfigurationElementCollection","uid":"Unity.Configuration.Abstractions.DeserializableConfigurationElementCollection`1","name.vb":"DeserializableConfigurationElementCollection(Of TElement)"},{"name":"DeserializableConfigurationElementCollectionBase","uid":"Unity.Configuration.Abstractions.DeserializableConfigurationElementCollectionBase`1","name.vb":"DeserializableConfigurationElementCollectionBase(Of TElement)"},{"name":"InjectionMemberElement","uid":"Unity.Configuration.Abstractions.InjectionMemberElement"},{"name":"IValueProvidingElement","uid":"Unity.Configuration.Abstractions.IValueProvidingElement"},{"name":"NamedElement","uid":"Unity.Configuration.Abstractions.NamedElement"},{"name":"ParameterValueElement","uid":"Unity.Configuration.Abstractions.ParameterValueElement"},{"name":"RegistrationElement","uid":"Unity.Configuration.Abstractions.RegistrationElement"},{"name":"SectionExtension","uid":"Unity.Configuration.Abstractions.SectionExtension"},{"name":"SectionExtensionContext","uid":"Unity.Configuration.Abstractions.SectionExtensionContext"}]},{"name":"Unity.Configuration.Collections","uid":"Unity.Configuration.Collections","items":[{"name":"RegistrationElementCollection","uid":"Unity.Configuration.Collections.RegistrationElementCollection"}]},{"name":"Unity.Configuration.ConfigurationHelpers","uid":"Unity.Configuration.ConfigurationHelpers","items":[{"name":"TypeResolver","uid":"Unity.Configuration.ConfigurationHelpers.TypeResolver"},{"name":"TypeResolverImpl","uid":"Unity.Configuration.ConfigurationHelpers.TypeResolverImpl"},{"name":"ValueElementHelper","uid":"Unity.Configuration.ConfigurationHelpers.ValueElementHelper"}]},{"name":"Unity.Configuration.Extensions","uid":"Unity.Configuration.Extensions","items":[{"name":"ConfigurationElementExtensions","uid":"Unity.Configuration.Extensions.ConfigurationElementExtensions"},{"name":"DictionaryExtensions","uid":"Unity.Configuration.Extensions.DictionaryExtensions"},{"name":"XmlWriterExtensions","uid":"Unity.Configuration.Extensions.XmlWriterExtensions"}]},{"name":"Unity.Configuration.Storage","uid":"Unity.Configuration.Storage","items":[{"name":"ElementHandlerMap","uid":"Unity.Configuration.Storage.ElementHandlerMap`1","name.vb":"ElementHandlerMap(Of TContainingElement)"}]},{"name":"Unity.Events","uid":"Unity.Events","items":[{"name":"ChildContainerCreatedEventArgs","uid":"Unity.Events.ChildContainerCreatedEventArgs"},{"name":"NamedEventArgs","uid":"Unity.Events.NamedEventArgs"},{"name":"RegisterEventArgs","uid":"Unity.Events.RegisterEventArgs"},{"name":"RegisterInstanceEventArgs","uid":"Unity.Events.RegisterInstanceEventArgs"}]},{"name":"Unity.Exceptions","uid":"Unity.Exceptions","items":[{"name":"DependencyMissingException","uid":"Unity.Exceptions.DependencyMissingException"},{"name":"IllegalInjectionMethodException","uid":"Unity.Exceptions.IllegalInjectionMethodException"}]},{"name":"Unity.Extension","uid":"Unity.Extension","items":[{"name":"IExtensionContext","uid":"Unity.Extension.IExtensionContext"},{"name":"IUnityContainerExtensionConfigurator","uid":"Unity.Extension.IUnityContainerExtensionConfigurator"},{"name":"Legacy","uid":"Unity.Extension.Legacy"},{"name":"UnityContainerExtension","uid":"Unity.Extension.UnityContainerExtension"}]},{"name":"Unity.Factories","uid":"Unity.Factories","items":[{"name":"EnumerableResolver","uid":"Unity.Factories.EnumerableResolver"}]},{"name":"Unity.Injection","uid":"Unity.Injection","items":[{"name":"GenericBase","uid":"Unity.Injection.GenericBase"},{"name":"GenericParameter","uid":"Unity.Injection.GenericParameter"},{"name":"GenericResolvedArrayParameter","uid":"Unity.Injection.GenericResolvedArrayParameter"},{"name":"Injection_ParameterValue","uid":"Unity.Injection.Injection_ParameterValue"},{"name":"InjectionConstructor","uid":"Unity.Injection.InjectionConstructor"},{"name":"InjectionField","uid":"Unity.Injection.InjectionField"},{"name":"InjectionMatching","uid":"Unity.Injection.InjectionMatching"},{"name":"InjectionMember","uid":"Unity.Injection.InjectionMember"},{"name":"InjectionMember","uid":"Unity.Injection.InjectionMember`2","name.vb":"InjectionMember(Of TMemberInfo, TData)"},{"name":"InjectionMethod","uid":"Unity.Injection.InjectionMethod"},{"name":"InjectionParameter","uid":"Unity.Injection.InjectionParameter"},{"name":"InjectionParameter","uid":"Unity.Injection.InjectionParameter`1","name.vb":"InjectionParameter(Of TParameter)"},{"name":"InjectionProperty","uid":"Unity.Injection.InjectionProperty"},{"name":"MemberInfoBase","uid":"Unity.Injection.MemberInfoBase`1","name.vb":"MemberInfoBase(Of TMemberInfo)"},{"name":"MethodBase","uid":"Unity.Injection.MethodBase`1","name.vb":"MethodBase(Of TMemberInfo)"},{"name":"OptionalGenericParameter","uid":"Unity.Injection.OptionalGenericParameter"},{"name":"OptionalParameter","uid":"Unity.Injection.OptionalParameter"},{"name":"OptionalParameter","uid":"Unity.Injection.OptionalParameter`1","name.vb":"OptionalParameter(Of T)"},{"name":"ParameterBase","uid":"Unity.Injection.ParameterBase"},{"name":"ParameterValue","uid":"Unity.Injection.ParameterValue"},{"name":"ResolvedArrayParameter","uid":"Unity.Injection.ResolvedArrayParameter"},{"name":"ResolvedArrayParameter","uid":"Unity.Injection.ResolvedArrayParameter`1","name.vb":"ResolvedArrayParameter(Of TElement)"},{"name":"ResolvedParameter","uid":"Unity.Injection.ResolvedParameter"},{"name":"ResolvedParameter","uid":"Unity.Injection.ResolvedParameter`1","name.vb":"ResolvedParameter(Of TParameter)"},{"name":"Typed_InjectionValue","uid":"Unity.Injection.Typed_InjectionValue"}]},{"name":"Unity.Lifetime","uid":"Unity.Lifetime","items":[{"name":"ContainerControlledLifetimeManager","uid":"Unity.Lifetime.ContainerControlledLifetimeManager"},{"name":"ContainerControlledTransientManager","uid":"Unity.Lifetime.ContainerControlledTransientManager"},{"name":"ExternallyControlledLifetimeManager","uid":"Unity.Lifetime.ExternallyControlledLifetimeManager"},{"name":"HierarchicalLifetimeManager","uid":"Unity.Lifetime.HierarchicalLifetimeManager"},{"name":"IFactoryLifetimeManager","uid":"Unity.Lifetime.IFactoryLifetimeManager"},{"name":"IInstanceLifetimeManager","uid":"Unity.Lifetime.IInstanceLifetimeManager"},{"name":"ILifetimeContainer","uid":"Unity.Lifetime.ILifetimeContainer"},{"name":"ITypeLifetimeManager","uid":"Unity.Lifetime.ITypeLifetimeManager"},{"name":"LifetimeContainer","uid":"Unity.Lifetime.LifetimeContainer"},{"name":"LifetimeManager","uid":"Unity.Lifetime.LifetimeManager"},{"name":"LifetimeManager.InvalidValue","uid":"Unity.Lifetime.LifetimeManager.InvalidValue"},{"name":"PerResolveLifetimeManager","uid":"Unity.Lifetime.PerResolveLifetimeManager"},{"name":"PerThreadLifetimeManager","uid":"Unity.Lifetime.PerThreadLifetimeManager"},{"name":"SingletonLifetimeManager","uid":"Unity.Lifetime.SingletonLifetimeManager"},{"name":"SynchronizedLifetimeManager","uid":"Unity.Lifetime.SynchronizedLifetimeManager"},{"name":"TransientLifetimeManager","uid":"Unity.Lifetime.TransientLifetimeManager"}]},{"name":"Unity.ObjectBuilder.BuildPlan.DynamicMethod","uid":"Unity.ObjectBuilder.BuildPlan.DynamicMethod","items":[{"name":"DynamicBuildPlanGenerationContext","uid":"Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicBuildPlanGenerationContext"}]},{"name":"Unity.Policy","uid":"Unity.Policy","items":[{"name":"DefaultPolicies","uid":"Unity.Policy.DefaultPolicies"},{"name":"IBuildPlanCreatorPolicy","uid":"Unity.Policy.IBuildPlanCreatorPolicy"},{"name":"IBuildPlanPolicy","uid":"Unity.Policy.IBuildPlanPolicy"},{"name":"IPolicyList","uid":"Unity.Policy.IPolicyList"},{"name":"IPolicySet","uid":"Unity.Policy.IPolicySet"},{"name":"IResolveDelegateFactory","uid":"Unity.Policy.IResolveDelegateFactory"},{"name":"PolicySetExtensions","uid":"Unity.Policy.PolicySetExtensions"},{"name":"ResolveDelegateFactory","uid":"Unity.Policy.ResolveDelegateFactory"}]},{"name":"Unity.Processors","uid":"Unity.Processors","items":[{"name":"ConstructorDiagnostic","uid":"Unity.Processors.ConstructorDiagnostic"},{"name":"ConstructorProcessor","uid":"Unity.Processors.ConstructorProcessor"},{"name":"FieldDiagnostic","uid":"Unity.Processors.FieldDiagnostic"},{"name":"FieldProcessor","uid":"Unity.Processors.FieldProcessor"},{"name":"MemberProcessor","uid":"Unity.Processors.MemberProcessor"},{"name":"MemberProcessor","uid":"Unity.Processors.MemberProcessor`2","name.vb":"MemberProcessor(Of TMemberInfo, TData)"},{"name":"MethodDiagnostic","uid":"Unity.Processors.MethodDiagnostic"},{"name":"MethodProcessor","uid":"Unity.Processors.MethodProcessor"},{"name":"ParametersProcessor","uid":"Unity.Processors.ParametersProcessor`1","name.vb":"ParametersProcessor(Of TMemberInfo)"},{"name":"PropertyDiagnostic","uid":"Unity.Processors.PropertyDiagnostic"},{"name":"PropertyProcessor","uid":"Unity.Processors.PropertyProcessor"}]},{"name":"Unity.Registration","uid":"Unity.Registration","items":[{"name":"ContainerRegistration","uid":"Unity.Registration.ContainerRegistration"},{"name":"InternalRegistration","uid":"Unity.Registration.InternalRegistration"}]},{"name":"Unity.Resolution","uid":"Unity.Resolution","items":[{"name":"DependencyOverride","uid":"Unity.Resolution.DependencyOverride"},{"name":"DependencyOverride","uid":"Unity.Resolution.DependencyOverride`1","name.vb":"DependencyOverride(Of T)"},{"name":"FieldOverride","uid":"Unity.Resolution.FieldOverride"},{"name":"IResolve","uid":"Unity.Resolution.IResolve"},{"name":"IResolveContext","uid":"Unity.Resolution.IResolveContext"},{"name":"IResolverFactory","uid":"Unity.Resolution.IResolverFactory`1","name.vb":"IResolverFactory(Of TMemberInfo)"},{"name":"NamedType","uid":"Unity.Resolution.NamedType"},{"name":"ParameterOverride","uid":"Unity.Resolution.ParameterOverride"},{"name":"ParameterOverrides","uid":"Unity.Resolution.ParameterOverrides"},{"name":"PropertyOverride","uid":"Unity.Resolution.PropertyOverride"},{"name":"ResolveDelegate","uid":"Unity.Resolution.ResolveDelegate`1","name.vb":"ResolveDelegate(Of TContext)"},{"name":"ResolverFactory","uid":"Unity.Resolution.ResolverFactory`1","name.vb":"ResolverFactory(Of TContext)"},{"name":"ResolverOverride","uid":"Unity.Resolution.ResolverOverride"},{"name":"TypeBasedOverride","uid":"Unity.Resolution.TypeBasedOverride"},{"name":"TypeBasedOverride","uid":"Unity.Resolution.TypeBasedOverride`1","name.vb":"TypeBasedOverride(Of T)"}]},{"name":"Unity.Selection","uid":"Unity.Selection","items":[{"name":"ConstructorSelection","uid":"Unity.Selection.ConstructorSelection"},{"name":"SelectionStage","uid":"Unity.Selection.SelectionStage"},{"name":"SelectorDelegate","uid":"Unity.Selection.SelectorDelegate`3","name.vb":"SelectorDelegate(Of TMember, TParam, TReturn)"}]},{"name":"Unity.Storage","uid":"Unity.Storage","items":[{"name":"IRegistry","uid":"Unity.Storage.IRegistry`2","name.vb":"IRegistry(Of TKey, TValue)"},{"name":"IStagedStrategyChain","uid":"Unity.Storage.IStagedStrategyChain`2","name.vb":"IStagedStrategyChain(Of TStrategyType, TStageEnum)"},{"name":"LinkedNode","uid":"Unity.Storage.LinkedNode`2","name.vb":"LinkedNode(Of TKey, TValue)"},{"name":"PolicyEntry","uid":"Unity.Storage.PolicyEntry"},{"name":"PolicyList","uid":"Unity.Storage.PolicyList"},{"name":"PolicySet","uid":"Unity.Storage.PolicySet"},{"name":"PolicySet.Policy","uid":"Unity.Storage.PolicySet.Policy"},{"name":"PolicySet.PolicySetDebugProxy","uid":"Unity.Storage.PolicySet.PolicySetDebugProxy"},{"name":"QuickSet","uid":"Unity.Storage.QuickSet`1","name.vb":"QuickSet(Of TValue)"},{"name":"RegistrationSet","uid":"Unity.Storage.RegistrationSet"},{"name":"RegistrationSet.Entry","uid":"Unity.Storage.RegistrationSet.Entry"},{"name":"StagedStrategyChain","uid":"Unity.Storage.StagedStrategyChain`2","name.vb":"StagedStrategyChain(Of TStrategyType, TStageEnum)"},{"name":"StagedStrategyChainExtensions","uid":"Unity.Storage.StagedStrategyChainExtensions"}]},{"name":"Unity.Strategies","uid":"Unity.Strategies","items":[{"name":"ArrayResolveStrategy","uid":"Unity.Strategies.ArrayResolveStrategy"},{"name":"BuilderStrategy","uid":"Unity.Strategies.BuilderStrategy"},{"name":"BuildKeyMappingStrategy","uid":"Unity.Strategies.BuildKeyMappingStrategy"},{"name":"BuildPlanStrategy","uid":"Unity.Strategies.BuildPlanStrategy"},{"name":"LifetimeStrategy","uid":"Unity.Strategies.LifetimeStrategy"}]}]} \ No newline at end of file diff --git a/_site/articles/application/index.html b/_site/articles/application/index.html new file mode 100644 index 0000000..2d40d78 --- /dev/null +++ b/_site/articles/application/index.html @@ -0,0 +1 @@ +{"content":"\n

Features such as inversion of control, dependency injection, interception, factory, and lifetime provide several major advantages when building applications that consist of many individual classes and components. Designing applications that conform to these patterns can provide numerous benefits:

\n
    \n
  • Decoupling service providers from service consumers
  • \n
  • Runtime as well as design time configuration of services and dependencies
  • \n
  • Ability to substitute one component for another.
  • \n
  • Centralization and abstraction of crosscutting concerns (logging, authentication, caching, and etc).
  • \n
  • Advanced lifetime management of components and services.
  • \n
  • Simplified testability for individual components and sections of the application.
  • \n
  • Simplified overall design, with faster and less error-prone development.
  • \n
  • Improved reusability of components within other applications.
  • \n
\n

Unity provides a comprehensive dependency injection and interception platform, and is easy to incorporate into your applications. However, it does change the way that you design these applications. The following sections of this topic describe areas where dependency injection is useful:

\n
    \n
  • Pluggable Architectures
  • \n
  • Managing Crosscutting Concerns
  • \n
  • Service and Component Location
  • \n
  • Policy Injection through Interception
  • \n
\n

Pluggable Architectures

\n

By designing applications to use a pluggable architecture, developers and users can add and modify the functionality of an application without changing the core code or processes. ASP.NET is an example of a pluggable architecture, where you can add and remove providers for features such as authentication, caching, and session management. Unity also facilitates a pluggable architecture that allows you to substitute the container for one of your own design and add extensions through the container extensions architecture.

\n

By using dependency injection mechanisms, such as Unity container, developers can map different components that implement a specific interface (such as a provider interface) or that inherit from a specific base class to the appropriate concrete implementations. Developers can then obtain a reference to the appropriate provider component at run time, without having to specify exactly which implementation of the component is required. The following sections of this topic, Managing Crosscutting Concerns and Service and Component Location, show how you can use dependency injection to create instances of a specific class based on a request for a more general class (such as an interface or base class definition).

\n

In addition, the providers may require instances of other components. For example, a caching provider may need to use the services of a cryptography component or service. When components require the services of other components, you can use dependency injection to automatically instantiate and inject instances of these components into a component, based on either configuration settings in the container or on code within the application.

\n

For more information about how you can use dependency injection in this way, see Using Injection Attributes.

\n

Managing Crosscutting Concerns

\n

The features and tasks implemented in applications are often referred to as concerns. The tasks specific to the application are core concerns. The tasks that are common across many parts of the application, and even across different applications, are crosscutting concerns. Most large applications require services such as logging, caching, validation, and authorization, and these are crosscutting concerns.

\n

The simplest way to centralize these features is to build separate components that implement each of the required features, and then use these components wherever the management of that concern is required—in one or more applications. By using dependency injection mechanisms, such as a Unity container, developers can register components that implement crosscutting concerns and then obtain a reference to the component at run time, without having to specify exactly which implementation of the component is required.

\n

For example, if you have a component named FileLogger that performs logging tasks, your application can instantiate this component using the new operator, as shown in the following code.

\n
FileLogger myLogger = new FileLogger();\n
\n

If you then want to change the application to use the new component, FastFileLogger, you must change the application code. However, if you have an interface ILogger that all implementations of the logging component uses, you might instead write the code like the following.

\n
ILogger myLogger = new FileLogger();\n
\n

However, this does not solve the problem because you still must find everywhere in the code where you used new() to create an instance of the specific class. Instead, you can use a dependency injection mechanism to map the ILogger interface to a specific concrete instance of the logging component, or even to multiple implementations, so that the application can specify which one it requires. The following code uses Unity to register a mapping for both a default type of logging component and a named type with the ILogger interface. Alternatively, you can specify these mappings using the Unity configuration file.

\n
// Create container and register types\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<ILogger, FileLogger>();       // default instance\nmyContainer.RegisterType<ILogger, FastFileLogger>("FastLogger");\n
\n

The application can then obtain a reference to the default logging component using the following code.

\n
ILogger myLogger = myContainer.Resolve<ILogger>();\n
\n

In addition, the application can use a variable (perhaps set in configuration or at run time) to specify a different implementation of the logging component interface as required, as shown in the following code.

\n
// Retrieve logger type name from configuration\nString loggerName = ConfigurationManager.AppSettings["LoggerName"].ToString();\nILogger myLogger = myContainer.Resolve<ILogger>(loggerName);\n
\n

For more information about registering types, type mappings, and resolving instances, see Resolving Objects.

\n

Service and Component Location

\n

Frequently, applications require the use of services or components that are specific to the application; examples are business logic components, data access components, interface components, and process controllers. In some cases, these services may be instance-based, so that each section of the application or each task requires a separate individual instance of the service. However, it is also common for services to be singleton-based, so that every user of the service references the same single instance of the service.

\n

A service location facility makes it easy for an application to obtain a reference to a service or component, without having to specify where to look for the specific service or whether it is a singleton-based or an instance-based service. By using dependency injection mechanisms, such as the Unity container, developers can register services in the appropriate way and then obtain a reference to the service at run time, without having to specify exactly which implementation of the service is required or what type of instance it actually is.

\n

For example, if you have a singleton service class named CustomerData that you interact with to read and update information for any customer, your application obtains a reference to this service usually by calling a static GetInstance method of the service (which ensures that it is a singleton and that only one instance can exist), as shown in the following code.

\n
CustomerData cData = CustomerData.GetInstance();\n
\n

Instead, you can use the Unity container to set the CustomerData class type with a specific lifetime that ensures it behaves as a singleton so that every request for the service returns the same instance, as shown in the following code. Alternatively, you could specify these mappings using the Unity configuration file.

\n
// Create container and register type as a singleton instance\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<CustomerData>(new ContainerControlledLifetimeManager());\n
\n

The application can then obtain a reference to the single instance of the CustomerData service using the following code. If the instance does not yet exist, the container creates it.

\n
CustomerData cData = myContainer.Resolve<CustomerData>();\n
\n

In addition, perhaps a new CustomerFile component you decide to use in your application inherits the same base class named CustomerAccessBase as the CustomerData service, but it is not a singleton—instead, it requires that your application instantiate an instance for each customer. In this case, you can specify mapping names when you register one component as a singleton type and one component as an instance type (with the default transient lifetime), and then use the same application code to retrieve the required instance.

\n

For example, the following code shows how you can register two named mappings for objects that inherit from the same base class, then—at run time—collect a string value from elsewhere in the application configuration that specifies which of the mappings to use. In this case, the value comes from the AppSettings section of the configuration file. If the value with the key CustomerService contains CustomerDataService, the code returns an instance of the CustomerData class. If it contains the value CustomerFileService, the code returns an instance of the CustomerFile class.

\n
IUnityContainer myContainer = new UnityContainer();\n// Register CustomerData type as a singleton instance\nmyContainer.RegisterType<CustomerAccessBase, CustomerData>("CustomerDataService", \n                        new ContainerControlledLifetimeManager());\n// Register CustomerFile type with the default transient lifetime\nmyContainer.RegisterType<CustomerAccessBase, CustomerFile>("CustomerFileService");\n...\nString serviceName = ConfigurationManager.AppSettings["CustomerService"].ToString();\nCustomerAccessBase cData \n  = (CustomerAccessBase)myContainer.Resolve<CustomerAccessBase>(serviceName);\n
\n

For more information about registering types, type mappings, and resolving instances, see Resolving Objects. For more information about using lifetime managers to control the creation, lifetime, and disposal of objects, see Understanding Lifetime Managers.

\n

Policy Injection through Interception

\n

Unity interception with its built-in policy injection module enables you to effectively capture calls to objects you resolve through the Unity DI container, and apply a policy that adds additional functionality to the target object. Typically, you will use this technique to change the behavior of existing objects, or to implement the management of crosscutting concerns through reusable handlers. You can specify how to match the target object using a wide range of matching rules, and construct a policy pipeline that contains one or more call handlers.

\n

Calls to the intercepted methods or properties of the target object then pass through the call handlers in the order you add them to the pipeline, and return through them in the reverse order. Your call handlers can access the values in the call, change these values, and control execution of the call. For example, the call handlers might authorize users, validate parameter values, cache the return value, and shortcut execution so that the target method does not actually execute where this is appropriate.

\n

You can configure Unity for policy injection by using a configuration file at design time, see Configuring Policy Injection Policies, or by using the API at run time, see Registering Policy Injection Components.

\n

The following example uses the Unity API to demonstrate how you can configure Unity to perform interception on a target object, using a policy that contains a logging handler and a validation handler. Notice that the logging handler is added first, so that it will log calls even if validation fails and the validation handler shortcuts the pipeline instead of calling the method of the target object. You can use the streamlined policy definition API provided by the Unity interception container extension to configure the container at run time or you can specify the same behavior at design time by using a configuration file. For an example using the API, see Registering Policy Injection Components. For a design time example, see Configuration Files for Interception.

\n
// Create a container and add the interception extension.\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.AddNewExtension<Interception>();\n\n// Configure the container with a policy named MyPolicy\n// that uses a TypeMatchingRule to match a custom class\n// and adds a logging handler and a validation handler\n// to the handler pipeline. You must specify at least one\n// matching rule or the policy will not be applied.\nmyContainer.Configure<Interception>()\n    .AddPolicy("MyPolicy")\n         .AddMatchingRule<TypeMatchingRule>(\n                  new InjectionConstructor("MyCustomType"))\n         .AddCallHandler(typeof(MyLoggingCallHandler))\n         .AddCallHandler(typeof(MyValidationCallHandler));\n\n// Configure the container to intercept calls to the\n// custom class using a TransparentProxyInterceptor.\nmyContainer.RegisterType<MyCustomType>("myType",\n    new Interceptor<TransparentProxyInterceptor>(),\n    new InterceptionBehavior<PolicyInjectionBehavior>());\n\n\n// Resolve the custom type through the container when\n// you are ready to use it. When you call a method or\n// set a property on it, the call will pass through\n// the logging handler and the validation handler.\nMyCustomType myNewInstance = myContainer.Resolve<MyCustomType>("myType");\n
\n

For more information about interception and policy injection, see Using Interception and Policy Injection.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/4/2019","updated_at_date_time":"2019-03-04T02:14:05Z"},"_path":"articles/application/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/application/","conceptual":"\n

Features such as inversion of control, dependency injection, interception, factory, and lifetime provide several major advantages when building applications that consist of many individual classes and components. Designing applications that conform to these patterns can provide numerous benefits:

\n
    \n
  • Decoupling service providers from service consumers
  • \n
  • Runtime as well as design time configuration of services and dependencies
  • \n
  • Ability to substitute one component for another.
  • \n
  • Centralization and abstraction of crosscutting concerns (logging, authentication, caching, and etc).
  • \n
  • Advanced lifetime management of components and services.
  • \n
  • Simplified testability for individual components and sections of the application.
  • \n
  • Simplified overall design, with faster and less error-prone development.
  • \n
  • Improved reusability of components within other applications.
  • \n
\n

Unity provides a comprehensive dependency injection and interception platform, and is easy to incorporate into your applications. However, it does change the way that you design these applications. The following sections of this topic describe areas where dependency injection is useful:

\n
    \n
  • Pluggable Architectures
  • \n
  • Managing Crosscutting Concerns
  • \n
  • Service and Component Location
  • \n
  • Policy Injection through Interception
  • \n
\n

Pluggable Architectures

\n

By designing applications to use a pluggable architecture, developers and users can add and modify the functionality of an application without changing the core code or processes. ASP.NET is an example of a pluggable architecture, where you can add and remove providers for features such as authentication, caching, and session management. Unity also facilitates a pluggable architecture that allows you to substitute the container for one of your own design and add extensions through the container extensions architecture.

\n

By using dependency injection mechanisms, such as Unity container, developers can map different components that implement a specific interface (such as a provider interface) or that inherit from a specific base class to the appropriate concrete implementations. Developers can then obtain a reference to the appropriate provider component at run time, without having to specify exactly which implementation of the component is required. The following sections of this topic, Managing Crosscutting Concerns and Service and Component Location, show how you can use dependency injection to create instances of a specific class based on a request for a more general class (such as an interface or base class definition).

\n

In addition, the providers may require instances of other components. For example, a caching provider may need to use the services of a cryptography component or service. When components require the services of other components, you can use dependency injection to automatically instantiate and inject instances of these components into a component, based on either configuration settings in the container or on code within the application.

\n

For more information about how you can use dependency injection in this way, see Using Injection Attributes.

\n

Managing Crosscutting Concerns

\n

The features and tasks implemented in applications are often referred to as concerns. The tasks specific to the application are core concerns. The tasks that are common across many parts of the application, and even across different applications, are crosscutting concerns. Most large applications require services such as logging, caching, validation, and authorization, and these are crosscutting concerns.

\n

The simplest way to centralize these features is to build separate components that implement each of the required features, and then use these components wherever the management of that concern is required—in one or more applications. By using dependency injection mechanisms, such as a Unity container, developers can register components that implement crosscutting concerns and then obtain a reference to the component at run time, without having to specify exactly which implementation of the component is required.

\n

For example, if you have a component named FileLogger that performs logging tasks, your application can instantiate this component using the new operator, as shown in the following code.

\n
FileLogger myLogger = new FileLogger();\n
\n

If you then want to change the application to use the new component, FastFileLogger, you must change the application code. However, if you have an interface ILogger that all implementations of the logging component uses, you might instead write the code like the following.

\n
ILogger myLogger = new FileLogger();\n
\n

However, this does not solve the problem because you still must find everywhere in the code where you used new() to create an instance of the specific class. Instead, you can use a dependency injection mechanism to map the ILogger interface to a specific concrete instance of the logging component, or even to multiple implementations, so that the application can specify which one it requires. The following code uses Unity to register a mapping for both a default type of logging component and a named type with the ILogger interface. Alternatively, you can specify these mappings using the Unity configuration file.

\n
// Create container and register types\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<ILogger, FileLogger>();       // default instance\nmyContainer.RegisterType<ILogger, FastFileLogger>("FastLogger");\n
\n

The application can then obtain a reference to the default logging component using the following code.

\n
ILogger myLogger = myContainer.Resolve<ILogger>();\n
\n

In addition, the application can use a variable (perhaps set in configuration or at run time) to specify a different implementation of the logging component interface as required, as shown in the following code.

\n
// Retrieve logger type name from configuration\nString loggerName = ConfigurationManager.AppSettings["LoggerName"].ToString();\nILogger myLogger = myContainer.Resolve<ILogger>(loggerName);\n
\n

For more information about registering types, type mappings, and resolving instances, see Resolving Objects.

\n

Service and Component Location

\n

Frequently, applications require the use of services or components that are specific to the application; examples are business logic components, data access components, interface components, and process controllers. In some cases, these services may be instance-based, so that each section of the application or each task requires a separate individual instance of the service. However, it is also common for services to be singleton-based, so that every user of the service references the same single instance of the service.

\n

A service location facility makes it easy for an application to obtain a reference to a service or component, without having to specify where to look for the specific service or whether it is a singleton-based or an instance-based service. By using dependency injection mechanisms, such as the Unity container, developers can register services in the appropriate way and then obtain a reference to the service at run time, without having to specify exactly which implementation of the service is required or what type of instance it actually is.

\n

For example, if you have a singleton service class named CustomerData that you interact with to read and update information for any customer, your application obtains a reference to this service usually by calling a static GetInstance method of the service (which ensures that it is a singleton and that only one instance can exist), as shown in the following code.

\n
CustomerData cData = CustomerData.GetInstance();\n
\n

Instead, you can use the Unity container to set the CustomerData class type with a specific lifetime that ensures it behaves as a singleton so that every request for the service returns the same instance, as shown in the following code. Alternatively, you could specify these mappings using the Unity configuration file.

\n
// Create container and register type as a singleton instance\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<CustomerData>(new ContainerControlledLifetimeManager());\n
\n

The application can then obtain a reference to the single instance of the CustomerData service using the following code. If the instance does not yet exist, the container creates it.

\n
CustomerData cData = myContainer.Resolve<CustomerData>();\n
\n

In addition, perhaps a new CustomerFile component you decide to use in your application inherits the same base class named CustomerAccessBase as the CustomerData service, but it is not a singleton—instead, it requires that your application instantiate an instance for each customer. In this case, you can specify mapping names when you register one component as a singleton type and one component as an instance type (with the default transient lifetime), and then use the same application code to retrieve the required instance.

\n

For example, the following code shows how you can register two named mappings for objects that inherit from the same base class, then—at run time—collect a string value from elsewhere in the application configuration that specifies which of the mappings to use. In this case, the value comes from the AppSettings section of the configuration file. If the value with the key CustomerService contains CustomerDataService, the code returns an instance of the CustomerData class. If it contains the value CustomerFileService, the code returns an instance of the CustomerFile class.

\n
IUnityContainer myContainer = new UnityContainer();\n// Register CustomerData type as a singleton instance\nmyContainer.RegisterType<CustomerAccessBase, CustomerData>("CustomerDataService", \n                        new ContainerControlledLifetimeManager());\n// Register CustomerFile type with the default transient lifetime\nmyContainer.RegisterType<CustomerAccessBase, CustomerFile>("CustomerFileService");\n...\nString serviceName = ConfigurationManager.AppSettings["CustomerService"].ToString();\nCustomerAccessBase cData \n  = (CustomerAccessBase)myContainer.Resolve<CustomerAccessBase>(serviceName);\n
\n

For more information about registering types, type mappings, and resolving instances, see Resolving Objects. For more information about using lifetime managers to control the creation, lifetime, and disposal of objects, see Understanding Lifetime Managers.

\n

Policy Injection through Interception

\n

Unity interception with its built-in policy injection module enables you to effectively capture calls to objects you resolve through the Unity DI container, and apply a policy that adds additional functionality to the target object. Typically, you will use this technique to change the behavior of existing objects, or to implement the management of crosscutting concerns through reusable handlers. You can specify how to match the target object using a wide range of matching rules, and construct a policy pipeline that contains one or more call handlers.

\n

Calls to the intercepted methods or properties of the target object then pass through the call handlers in the order you add them to the pipeline, and return through them in the reverse order. Your call handlers can access the values in the call, change these values, and control execution of the call. For example, the call handlers might authorize users, validate parameter values, cache the return value, and shortcut execution so that the target method does not actually execute where this is appropriate.

\n

You can configure Unity for policy injection by using a configuration file at design time, see Configuring Policy Injection Policies, or by using the API at run time, see Registering Policy Injection Components.

\n

The following example uses the Unity API to demonstrate how you can configure Unity to perform interception on a target object, using a policy that contains a logging handler and a validation handler. Notice that the logging handler is added first, so that it will log calls even if validation fails and the validation handler shortcuts the pipeline instead of calling the method of the target object. You can use the streamlined policy definition API provided by the Unity interception container extension to configure the container at run time or you can specify the same behavior at design time by using a configuration file. For an example using the API, see Registering Policy Injection Components. For a design time example, see Configuration Files for Interception.

\n
// Create a container and add the interception extension.\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.AddNewExtension<Interception>();\n\n// Configure the container with a policy named MyPolicy\n// that uses a TypeMatchingRule to match a custom class\n// and adds a logging handler and a validation handler\n// to the handler pipeline. You must specify at least one\n// matching rule or the policy will not be applied.\nmyContainer.Configure<Interception>()\n    .AddPolicy("MyPolicy")\n         .AddMatchingRule<TypeMatchingRule>(\n                  new InjectionConstructor("MyCustomType"))\n         .AddCallHandler(typeof(MyLoggingCallHandler))\n         .AddCallHandler(typeof(MyValidationCallHandler));\n\n// Configure the container to intercept calls to the\n// custom class using a TransparentProxyInterceptor.\nmyContainer.RegisterType<MyCustomType>("myType",\n    new Interceptor<TransparentProxyInterceptor>(),\n    new InterceptionBehavior<PolicyInjectionBehavior>());\n\n\n// Resolve the custom type through the container when\n// you are ready to use it. When you call a method or\n// set a property on it, the call will pass through\n// the logging handler and the validation handler.\nMyCustomType myNewInstance = myContainer.Resolve<MyCustomType>("myType");\n
\n

For more information about interception and policy injection, see Using Interception and Policy Injection.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/application.md","depot_name":".","document_id":"2f0a617d-9eaf-6117-88ac-584be21485aa","document_version_independent_id":"c37f1880-64cb-c594-2a5c-a9c15ec1b0e8","gitcommit":"https://github.com/unitycontainer/documentation/blob/a08c5cd38778dbc7606660e730b63c1a6800daf1/articles/application.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/application.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/application.md","rawTitle":"

Application Design Concepts with Unity

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Application Design Concepts with Unity","uid":"Article.Application.Design","updated_at":"2019-03-04 02:14 AM","wordCount":1920},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/changelog/index.html b/_site/articles/changelog/index.html new file mode 100644 index 0000000..3776195 --- /dev/null +++ b/_site/articles/changelog/index.html @@ -0,0 +1 @@ +{"content":"\n

This document contains a list of breaking changes and noteworthy issues. At this time the list is not complete. If you discover an issue while upgrading that is not covered here please open an issue or, preferably, issue a pull request. You can clone the wiki to do that.

\n

Some breaking changes are currently documented in the issue tracker only. Again, please report any such findings by commenting on the issue.

\n

Upgrading to Unity 5.9.x

\n

Starting with version 5.9.0 Unity package will only contain Unity.Abstractions and Unity.Container packages.

\n

All other packages will be available as individual NuGet packages

\n

Breaking change

\n

Some extension methods have been moved out of the Unity nuget package and have been moved into their own individual packages.

\n

For example, the following code will no longer work

\n
Container = new UnityContainer();\nContainer.LoadConfiguration();\n
\n

You will receive an error that the namespace Microsoft.Practices.Unity.Configuration no longer exists in your using statements.

\n

The Fix

\n

To fix this and similar problems, add the required nuget packages separately.

\n

For the example above, add nuget package Unity.Configuration

\n

This wiki created with help from quintonn

\n

Upgrading to Unity 5.8.x

\n

Unity 5.8.0 adds support for nesting generic types when resolving collections (arrays and enumerables).

\n

Problem

\n

Unity has build in support for IEnumerable<>, Array ( type[] ), Func<>, and Lazy<>. Theoretically it should be able to recognize these types and properly resolve them individually and in combination. Unfortunately it did not do so. For example if you registered several interfaces like this:

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n
\n

resolving enumerable in combination with generic will resolve incorrectly:

\n
Resolve<Lazy<IEnumenrable<type>>>  - resolve correctly\nResolve<IEnumenrable<Lazy<type>>>  - resolve empty\n
\n

The Fix

\n

Release v5.8.0 fixes resolution of collections of generic and array types and Lazy collections of items. This will now work fine:

\n
Resolve<Lazy<IEnumenrable<type>>>\nResolve<IEnumenrable<Lazy<type>>>\n\nResolve<Lazy<type[]>>\nResolve<Lazy<type>[]>\n\nResolve<IEnumerable<Lazy<Func<IService>>>>()\nResolve<IEnumerable<Func<Lazy<IService>>>>()\n\nResolve<Lazy<Func<IService>>[]>()\nResolve<Func<Lazy<IService>>[]>()\n
\n

The logic behind resolving collections is to find type to enumerate and get all registrations for it no matter how deep in generics tree. Enumerated type could be:

\n
    \n
  • Non generic (Constructed Generic) type
  • \n
  • Explicitly registered type
  • \n
\n

So, in this example

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n\nResolve<IEnumerable<Func<Lazy<IService>>>>();\n
\n

Unity will recognize IService as registered type and enumerate four instances of Func<Lazy<IService>>.

\n

But if you look at this example:

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n\nRegisterType(typeof(IFoo<>), typeof(Foo<>));  <-- note this registraton\n\nResolve<IEnumerable<IFoo<IService>>>();\n
\n

Returned result is different! Adding registration for IFoo changes enumerable type to IFoo. This resolution will only return one item.

\n

Breaking change

\n

Sometimes you do want Unity to ignore a generic when it resolves collections similar to how it deals with Lazy and Func. Suppose in example above you want Unity to resolve all four of IService instances wrapped in IFoo.\nTo do so you would have to make IFoo<> a Built-In type of the container.

\n

It could be simply done by creating either IBuildPlanCreatorPolicy or IBuildPlanPolicy factories.\nThere are just a few steps you need to follow:

\n\n

For examples of how it should be done please follow this link.

\n

Upgrading to Unity 5.2.1

\n

This release fundamentally changes how types are registered with Unity. The rationale behind this change is this issue.

\n

The problem

\n

To explain the problem please look at this example. Prior to this release registering singleton ILogger service like this:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager(), new InjectionConstructor());\n
\n

would create two registrations:

\n
    \n
  1. A mapping between ILogger to MockLogger
  2. \n
  3. A singleton registration for MockLogger with default constructor.
  4. \n
\n

Calling container.Resolve<ILogger>() resolves singleton instance of MockLogger as expected, and resolving type MockLogger container.Resolve<MockLogger>() would resolve the same instance of MockLogger. Both ContainerControlledLifetimeManager and InjectionConstructor would be associated with MockLogger registration.

\n

Suppose you want to resolve a new MockLogger whenever it is resolved directly like this container.Resolve<MockLogger>(). To do so you would create another registration just for the MockLogger:

\n
container.RegisterType<MockLogger>(new TransientLifetimeManager());\n
\n

So, now when you call container.Resolve<MockLogger>() it resolves new instance of the MockLogger class and uses constructor with longest list of parameters. All is well and as expected. But now if you try to resolve container.Resolve<ILogger>() it is no longer returns singleton instance of the MockLogger. Now it also returns new MockLogger created with constructor with longest list of parameters.\nThe subsequent registration overwritten all information associated with ILogger.

\n

The solution

\n

Release 5.2.1 fixes this behavior. Now all information passed to Unity during registration is stored with FromType instead of ToType. So registering type like this:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager(), new InjectionConstructor());\n
\n

creates just one registration ILogger and associates LifetimeManager and all provided InjectionMemebers with it. At this point MockLogger is still unregistered.

\n

So, think about it as a RegisteredType and MappedTo type. If you look at initial example:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager());\n
\n

ILogger - is a registered type and ContainerControlledLifetimeManager is associated with this type, as well as any InjectionMembers you provide during registration.

\n

Breaking changes

\n

This release breaks a lot of registrations. Anything relaying on TypeTo being registered in mappings will fail. For example:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager());\n\nAssert.AreSame( container.Resolve<ILogger>(), container.Resolve<MockLogger>()) <-- Will fail now\n
\n

This could be easily fixed by slightly modifying how types are registered. If you want TypeTo to be available independently you could register it like this:

\n
container.RegisterType<MockLogger>(new ContainerControlledLifetimeManager());\ncontainer.RegisterType<ILogger, MockLogger>();\n\nAssert.AreSame( container.Resolve<ILogger>(), container.Resolve<MockLogger>()) <-- Passes\n
\n

This applies to anything you registering with the type: factories, injection members, interceptors, etc.

\n

Fixing

\n

With some creative searching and sorting these breaking registrations could be identified statically, without running the code. The key is to look for registrations with same TypeTo type. If you see multiple registrations registering same type as implementation type and at least one of them has non transient lifetime it is a good indicator that it might fail after update:

\n
container.RegisterType<ILogger, Logger>(new ContainerControlledLifetimeManager());\n...\ncontainer.RegisterType<IOtherLogger, Logger>();\n
\n

To fix just add individual registration for implementation type with proper lifetime manager like so:

\n
container.RegisterType<Logger>(new ContainerControlledLifetimeManager());\n...\ncontainer.RegisterType<ILogger, Logger>();\n...\ncontainer.RegisterType<IOtherLogger, Logger>();\n
\n

Make sure it is registered before other mappings.

\n

Upgrading to Unity.Abstractions 4.1.4

\n

Lifetime managers now support the value null. GetValue must return LifetimeManager.NoValue to indicate that no value has been set. You must upgrade custom lifetime managers to not return null inappropriately. Mainly the GetValue method must be adjusted. The built-in lifetime managers have been upgraded. If you do not use custom lifetime managers you should not see any changes in behavior. (https://github.com/unitycontainer/abstractions/issues/102)

\n

Design time validation for LifetimeManager was added. The marker interfaces ITypeLifetimeManager, IInstanceLifetimeManager and IFactoryLifetimeManager have been introduced. Various other parts of the framework now refer to these types instead of LifetimeManager. The marker interfaces are empty and LifetimeManager does not inherit from any of them. This can lead to compiler errors. In general these errors can be fixed through changing the type of variables or through casting. (https://github.com/unitycontainer/abstractions/issues/90)

\n

Upgrading to Unity.Abstractions 4.0.0.350

\n

The namespace Unity.Attributes was removed. These types are now in namespace Unity. One common type that is affected is DependencyAttribute. Suggested way to upgrade: Mass delete the old namespace reference using the Regex using Unity.Attributes;\\r\\n in Visual Studio. Then, use Resharper to fix missing imports in the entire solution in one action.

\n

Upgrading to Unity.Abstractions 4.0.0.0

\n

A few breaking changes have been made. For more information see https://github.com/unitycontainer/abstractions/issues/97.

\n

Problem

\n

Build error The type or namespace name 'IBuilderContext' could not be found.

\n

Solution

\n

IBuilderContext has been replaced with: Unity.Builder.BuilderContext

\n

Problem

\n

Build Error `'IBuildPlanCreatorPolicy' is obsolete: 'This interface has been replaced with Unity.Policy.ResolveDelegateFactory delegate'``

\n

Solution

\n

See this example or this example or this example

\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PreBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PreBuildUp method to: public override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PostBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PostBuildUp method to:\npublic override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

Build Error in Builder Strategy derived class:\n'BuilderContext' does not contain a definition for 'AddResolverOverrides' and no accessible extension method 'AddResolverOverrides' accepting a first argument of type 'BuilderContext' could be found

\n

Solution

\n

The behaviour can be mimicked by something like:

\n
        public static void AddResolverOverrides(ref BuilderContext ctx, ResolverOverride theOverride)\n        {\n            var newOverrides = ctx.Overrides;\n            newOverrides = newOverrides == null \n                ? new ResolverOverride[]{theOverride} \n                : newOverrides.Concat(new[] {theOverride}).ToArray();\n\n            ctx.Overrides = newOverrides;\n        }\n
\n

Problem

\n

'BuilderContext' does not contain a definition for 'ParentContext' and no accessible extension method 'ParentContext' accepting a first argument of type 'BuilderContext' could be found

\n

I used the ParentContext of IBuilderContext to determine if anything in the build hierarchy was of a certain type. More specifically I was checking to see if a specific decorator class was being applied as part of the build.

\n

Solution

\n

There is an IntPtr Parent property on the BuilderContext struct. Can this be used to find the parent context?

\n

Problem

\n

There is a build warning:\n'InjectionFactory' is obsolete: 'InjectionFactory has been deprecated and will be removed in next release. Please use IUnityContainer.RegisterFactory(...) method instead.'

\n

Solution

\n

The InjectionFactory class has been deprecated. Injection factories are now registered directly with the container.\nFor example:

\n

Old code:\nContainer.RegisterType<IEncryptionProvider>(new ContainerControlledLifetimeManager(), new InjectionFactory(c => MakeEncryptionProvider(c)));

\n

New code:\nContainer.RegisterFactory<IEncryptionProvider>(c => MakeEncryptionProvider(c), new ContainerControlledLifetimeManager());

\n

Be Aware

\n

The public key token of the assembly has changed, so you may need to remove redundant assembly bindings from config files.

\n

For example:\nThis binding will now be ineffective, and can be removed:

\n
      <dependentAssembly>\n        <assemblyIdentity name="Unity.Abstractions" publicKeyToken="6d32ff45e0ccc69f" culture="neutral" />\n        <bindingRedirect oldVersion="0.0.0.0-3.3.0.0" newVersion="3.3.0.0" />\n      </dependentAssembly>\n
\n

Note:

\n
    \n
  • The old public key token value is 6d32ff45e0ccc69f
  • \n
  • The new public key token is 489b6accfaf20ef0
  • \n
\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PostBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PostBuildUp method to: public override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

I'm using this code to register my interfaces:

\n
Containter.RegisterType<ICustomerRepository, CustomerRepository>(new ContainerControlledLifetimeManager(), InjectionConstructor);\n
\n

But after the upgrade im getting the following error when resolving:

\n
Exception thrown: 'System.InvalidCastException' in Unity.Abstractions.dll\nUnable to cast object of type\n
\n

Solution

\n

Ok I managed to find out what I was doing wrong.\nI was reusing the same 'InjectionConstructor' for all my registrations.\nAfter replacing them with a new instance for each my problem went away.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/24/2019","updated_at_date_time":"2019-04-24T22:53:03Z"},"_path":"articles/changelog/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/changelog/","conceptual":"\n

This document contains a list of breaking changes and noteworthy issues. At this time the list is not complete. If you discover an issue while upgrading that is not covered here please open an issue or, preferably, issue a pull request. You can clone the wiki to do that.

\n

Some breaking changes are currently documented in the issue tracker only. Again, please report any such findings by commenting on the issue.

\n

Upgrading to Unity 5.9.x

\n

Starting with version 5.9.0 Unity package will only contain Unity.Abstractions and Unity.Container packages.

\n

All other packages will be available as individual NuGet packages

\n

Breaking change

\n

Some extension methods have been moved out of the Unity nuget package and have been moved into their own individual packages.

\n

For example, the following code will no longer work

\n
Container = new UnityContainer();\nContainer.LoadConfiguration();\n
\n

You will receive an error that the namespace Microsoft.Practices.Unity.Configuration no longer exists in your using statements.

\n

The Fix

\n

To fix this and similar problems, add the required nuget packages separately.

\n

For the example above, add nuget package Unity.Configuration

\n

This wiki created with help from quintonn

\n

Upgrading to Unity 5.8.x

\n

Unity 5.8.0 adds support for nesting generic types when resolving collections (arrays and enumerables).

\n

Problem

\n

Unity has build in support for IEnumerable<>, Array ( type[] ), Func<>, and Lazy<>. Theoretically it should be able to recognize these types and properly resolve them individually and in combination. Unfortunately it did not do so. For example if you registered several interfaces like this:

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n
\n

resolving enumerable in combination with generic will resolve incorrectly:

\n
Resolve<Lazy<IEnumenrable<type>>>  - resolve correctly\nResolve<IEnumenrable<Lazy<type>>>  - resolve empty\n
\n

The Fix

\n

Release v5.8.0 fixes resolution of collections of generic and array types and Lazy collections of items. This will now work fine:

\n
Resolve<Lazy<IEnumenrable<type>>>\nResolve<IEnumenrable<Lazy<type>>>\n\nResolve<Lazy<type[]>>\nResolve<Lazy<type>[]>\n\nResolve<IEnumerable<Lazy<Func<IService>>>>()\nResolve<IEnumerable<Func<Lazy<IService>>>>()\n\nResolve<Lazy<Func<IService>>[]>()\nResolve<Func<Lazy<IService>>[]>()\n
\n

The logic behind resolving collections is to find type to enumerate and get all registrations for it no matter how deep in generics tree. Enumerated type could be:

\n
    \n
  • Non generic (Constructed Generic) type
  • \n
  • Explicitly registered type
  • \n
\n

So, in this example

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n\nResolve<IEnumerable<Func<Lazy<IService>>>>();\n
\n

Unity will recognize IService as registered type and enumerate four instances of Func<Lazy<IService>>.

\n

But if you look at this example:

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n\nRegisterType(typeof(IFoo<>), typeof(Foo<>));  <-- note this registraton\n\nResolve<IEnumerable<IFoo<IService>>>();\n
\n

Returned result is different! Adding registration for IFoo changes enumerable type to IFoo. This resolution will only return one item.

\n

Breaking change

\n

Sometimes you do want Unity to ignore a generic when it resolves collections similar to how it deals with Lazy and Func. Suppose in example above you want Unity to resolve all four of IService instances wrapped in IFoo.\nTo do so you would have to make IFoo<> a Built-In type of the container.

\n

It could be simply done by creating either IBuildPlanCreatorPolicy or IBuildPlanPolicy factories.\nThere are just a few steps you need to follow:

\n\n

For examples of how it should be done please follow this link.

\n

Upgrading to Unity 5.2.1

\n

This release fundamentally changes how types are registered with Unity. The rationale behind this change is this issue.

\n

The problem

\n

To explain the problem please look at this example. Prior to this release registering singleton ILogger service like this:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager(), new InjectionConstructor());\n
\n

would create two registrations:

\n
    \n
  1. A mapping between ILogger to MockLogger
  2. \n
  3. A singleton registration for MockLogger with default constructor.
  4. \n
\n

Calling container.Resolve<ILogger>() resolves singleton instance of MockLogger as expected, and resolving type MockLogger container.Resolve<MockLogger>() would resolve the same instance of MockLogger. Both ContainerControlledLifetimeManager and InjectionConstructor would be associated with MockLogger registration.

\n

Suppose you want to resolve a new MockLogger whenever it is resolved directly like this container.Resolve<MockLogger>(). To do so you would create another registration just for the MockLogger:

\n
container.RegisterType<MockLogger>(new TransientLifetimeManager());\n
\n

So, now when you call container.Resolve<MockLogger>() it resolves new instance of the MockLogger class and uses constructor with longest list of parameters. All is well and as expected. But now if you try to resolve container.Resolve<ILogger>() it is no longer returns singleton instance of the MockLogger. Now it also returns new MockLogger created with constructor with longest list of parameters.\nThe subsequent registration overwritten all information associated with ILogger.

\n

The solution

\n

Release 5.2.1 fixes this behavior. Now all information passed to Unity during registration is stored with FromType instead of ToType. So registering type like this:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager(), new InjectionConstructor());\n
\n

creates just one registration ILogger and associates LifetimeManager and all provided InjectionMemebers with it. At this point MockLogger is still unregistered.

\n

So, think about it as a RegisteredType and MappedTo type. If you look at initial example:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager());\n
\n

ILogger - is a registered type and ContainerControlledLifetimeManager is associated with this type, as well as any InjectionMembers you provide during registration.

\n

Breaking changes

\n

This release breaks a lot of registrations. Anything relaying on TypeTo being registered in mappings will fail. For example:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager());\n\nAssert.AreSame( container.Resolve<ILogger>(), container.Resolve<MockLogger>()) <-- Will fail now\n
\n

This could be easily fixed by slightly modifying how types are registered. If you want TypeTo to be available independently you could register it like this:

\n
container.RegisterType<MockLogger>(new ContainerControlledLifetimeManager());\ncontainer.RegisterType<ILogger, MockLogger>();\n\nAssert.AreSame( container.Resolve<ILogger>(), container.Resolve<MockLogger>()) <-- Passes\n
\n

This applies to anything you registering with the type: factories, injection members, interceptors, etc.

\n

Fixing

\n

With some creative searching and sorting these breaking registrations could be identified statically, without running the code. The key is to look for registrations with same TypeTo type. If you see multiple registrations registering same type as implementation type and at least one of them has non transient lifetime it is a good indicator that it might fail after update:

\n
container.RegisterType<ILogger, Logger>(new ContainerControlledLifetimeManager());\n...\ncontainer.RegisterType<IOtherLogger, Logger>();\n
\n

To fix just add individual registration for implementation type with proper lifetime manager like so:

\n
container.RegisterType<Logger>(new ContainerControlledLifetimeManager());\n...\ncontainer.RegisterType<ILogger, Logger>();\n...\ncontainer.RegisterType<IOtherLogger, Logger>();\n
\n

Make sure it is registered before other mappings.

\n

Upgrading to Unity.Abstractions 4.1.4

\n

Lifetime managers now support the value null. GetValue must return LifetimeManager.NoValue to indicate that no value has been set. You must upgrade custom lifetime managers to not return null inappropriately. Mainly the GetValue method must be adjusted. The built-in lifetime managers have been upgraded. If you do not use custom lifetime managers you should not see any changes in behavior. (https://github.com/unitycontainer/abstractions/issues/102)

\n

Design time validation for LifetimeManager was added. The marker interfaces ITypeLifetimeManager, IInstanceLifetimeManager and IFactoryLifetimeManager have been introduced. Various other parts of the framework now refer to these types instead of LifetimeManager. The marker interfaces are empty and LifetimeManager does not inherit from any of them. This can lead to compiler errors. In general these errors can be fixed through changing the type of variables or through casting. (https://github.com/unitycontainer/abstractions/issues/90)

\n

Upgrading to Unity.Abstractions 4.0.0.350

\n

The namespace Unity.Attributes was removed. These types are now in namespace Unity. One common type that is affected is DependencyAttribute. Suggested way to upgrade: Mass delete the old namespace reference using the Regex using Unity.Attributes;\\r\\n in Visual Studio. Then, use Resharper to fix missing imports in the entire solution in one action.

\n

Upgrading to Unity.Abstractions 4.0.0.0

\n

A few breaking changes have been made. For more information see https://github.com/unitycontainer/abstractions/issues/97.

\n

Problem

\n

Build error The type or namespace name 'IBuilderContext' could not be found.

\n

Solution

\n

IBuilderContext has been replaced with: Unity.Builder.BuilderContext

\n

Problem

\n

Build Error `'IBuildPlanCreatorPolicy' is obsolete: 'This interface has been replaced with Unity.Policy.ResolveDelegateFactory delegate'``

\n

Solution

\n

See this example or this example or this example

\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PreBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PreBuildUp method to: public override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PostBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PostBuildUp method to:\npublic override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

Build Error in Builder Strategy derived class:\n'BuilderContext' does not contain a definition for 'AddResolverOverrides' and no accessible extension method 'AddResolverOverrides' accepting a first argument of type 'BuilderContext' could be found

\n

Solution

\n

The behaviour can be mimicked by something like:

\n
        public static void AddResolverOverrides(ref BuilderContext ctx, ResolverOverride theOverride)\n        {\n            var newOverrides = ctx.Overrides;\n            newOverrides = newOverrides == null \n                ? new ResolverOverride[]{theOverride} \n                : newOverrides.Concat(new[] {theOverride}).ToArray();\n\n            ctx.Overrides = newOverrides;\n        }\n
\n

Problem

\n

'BuilderContext' does not contain a definition for 'ParentContext' and no accessible extension method 'ParentContext' accepting a first argument of type 'BuilderContext' could be found

\n

I used the ParentContext of IBuilderContext to determine if anything in the build hierarchy was of a certain type. More specifically I was checking to see if a specific decorator class was being applied as part of the build.

\n

Solution

\n

There is an IntPtr Parent property on the BuilderContext struct. Can this be used to find the parent context?

\n

Problem

\n

There is a build warning:\n'InjectionFactory' is obsolete: 'InjectionFactory has been deprecated and will be removed in next release. Please use IUnityContainer.RegisterFactory(...) method instead.'

\n

Solution

\n

The InjectionFactory class has been deprecated. Injection factories are now registered directly with the container.\nFor example:

\n

Old code:\nContainer.RegisterType<IEncryptionProvider>(new ContainerControlledLifetimeManager(), new InjectionFactory(c => MakeEncryptionProvider(c)));

\n

New code:\nContainer.RegisterFactory<IEncryptionProvider>(c => MakeEncryptionProvider(c), new ContainerControlledLifetimeManager());

\n

Be Aware

\n

The public key token of the assembly has changed, so you may need to remove redundant assembly bindings from config files.

\n

For example:\nThis binding will now be ineffective, and can be removed:

\n
      <dependentAssembly>\n        <assemblyIdentity name="Unity.Abstractions" publicKeyToken="6d32ff45e0ccc69f" culture="neutral" />\n        <bindingRedirect oldVersion="0.0.0.0-3.3.0.0" newVersion="3.3.0.0" />\n      </dependentAssembly>\n
\n

Note:

\n
    \n
  • The old public key token value is 6d32ff45e0ccc69f
  • \n
  • The new public key token is 489b6accfaf20ef0
  • \n
\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PostBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PostBuildUp method to: public override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

I'm using this code to register my interfaces:

\n
Containter.RegisterType<ICustomerRepository, CustomerRepository>(new ContainerControlledLifetimeManager(), InjectionConstructor);\n
\n

But after the upgrade im getting the following error when resolving:

\n
Exception thrown: 'System.InvalidCastException' in Unity.Abstractions.dll\nUnable to cast object of type\n
\n

Solution

\n

Ok I managed to find out what I was doing wrong.\nI was reusing the same 'InjectionConstructor' for all my registrations.\nAfter replacing them with a new instance for each my problem went away.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/changelog.md","depot_name":".","document_id":"6a34c583-fac2-de3b-02e6-295347f24cec","document_version_independent_id":"f49a2693-93c2-cc77-ff66-251ae7c171be","gitcommit":"https://github.com/unitycontainer/documentation/blob/3838863b96854037a5cc56e5c9a81bf7bcdc15c5/articles/changelog.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/changelog.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/changelog.md","rawTitle":"

Upgrading Unity Container (Changelog)

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Upgrading Unity Container (Changelog)","uid":"Article.Change.Log","updated_at":"2019-04-24 10:53 PM","wordCount":1670},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/design/index.html b/_site/articles/design/index.html new file mode 100644 index 0000000..7fd01d2 --- /dev/null +++ b/_site/articles/design/index.html @@ -0,0 +1 @@ +{"content":"\n

Unity was designed to achieve the following goals:

\n
    \n
  • Promote the principles of modular design through aggressive decoupling.
  • \n
  • Maximize testability when designing applications.
  • \n
  • Provide a fast and lightweight dependency injection platform for creating new as well as managing existing objects.
  • \n
  • Expose a compact and intuitive API for developers to work with.
  • \n
  • Support a wide range of languages, and platforms.
  • \n
  • Allow attribute-driven injection for constructors, properties, fields, and methods.
  • \n
  • Provide extensibility through container extensions.
  • \n
  • Provide stability required in enterprise-level line of business (LOB) applications.
  • \n
\n

To allow maximum flexibility Unity container split into core and extension packages. Core packages implement basic IoC/DI functionality and extensions provide specific behavior such as configuration, decoration, and etc.

\n

Unity Core

\n

Unity core consists of two assemblies:

\n
    \n
  • Unity.Abstractions
  • \n
  • Unity.Container
  • \n
\n

Unity.Abstractions assembly contains all public declarations required to use the container in applications and relatively unchanged from version to version. It defines IUnityContainer interface as well as types and interfaces used to register, configure and resolve types and instances.

\n

Unity.Container assembly implements the IoC engine and exposes public members required to extend the container.

\n

Core Packages

\n

For legacy support and general convenience core library is distributed in two different forms:

\n\n

Composite package Unity

\n

This is a convenience package containing both Unity.Abstractions as well as Unity.Container assemblies. This package is distributed to support legacy applications.

\n

Independent Packages Unity.Abstractions and Unity.Container

\n

To allow easier path to upgrade and maximum decoupling between declarative part and implementation, Unity split into two assemblies: Unity.Abstractions and Unity.Container

\n

When used in libraries it allows linking to Unity.Abstractions and referencing Unity.Container only in bootstrapping project.

\n

Unity Extensions

\n

Unity project implements and distributes several extensions such as Unity.Configuration, Unity.Interception, and etc.

\n

More Information

\n

For more information about using packages inside applications see Application Design concepts with Unity.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"11/25/2019","updated_at_date_time":"2019-11-25T20:32:40Z"},"_path":"articles/design/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/design/","conceptual":"\n

Unity was designed to achieve the following goals:

\n
    \n
  • Promote the principles of modular design through aggressive decoupling.
  • \n
  • Maximize testability when designing applications.
  • \n
  • Provide a fast and lightweight dependency injection platform for creating new as well as managing existing objects.
  • \n
  • Expose a compact and intuitive API for developers to work with.
  • \n
  • Support a wide range of languages, and platforms.
  • \n
  • Allow attribute-driven injection for constructors, properties, fields, and methods.
  • \n
  • Provide extensibility through container extensions.
  • \n
  • Provide stability required in enterprise-level line of business (LOB) applications.
  • \n
\n

To allow maximum flexibility Unity container split into core and extension packages. Core packages implement basic IoC/DI functionality and extensions provide specific behavior such as configuration, decoration, and etc.

\n

Unity Core

\n

Unity core consists of two assemblies:

\n
    \n
  • Unity.Abstractions
  • \n
  • Unity.Container
  • \n
\n

Unity.Abstractions assembly contains all public declarations required to use the container in applications and relatively unchanged from version to version. It defines IUnityContainer interface as well as types and interfaces used to register, configure and resolve types and instances.

\n

Unity.Container assembly implements the IoC engine and exposes public members required to extend the container.

\n

Core Packages

\n

For legacy support and general convenience core library is distributed in two different forms:

\n\n

Composite package Unity

\n

This is a convenience package containing both Unity.Abstractions as well as Unity.Container assemblies. This package is distributed to support legacy applications.

\n

Independent Packages Unity.Abstractions and Unity.Container

\n

To allow easier path to upgrade and maximum decoupling between declarative part and implementation, Unity split into two assemblies: Unity.Abstractions and Unity.Container

\n

When used in libraries it allows linking to Unity.Abstractions and referencing Unity.Container only in bootstrapping project.

\n

Unity Extensions

\n

Unity project implements and distributes several extensions such as Unity.Configuration, Unity.Interception, and etc.

\n

More Information

\n

For more information about using packages inside applications see Application Design concepts with Unity.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/design.md","depot_name":".","document_id":"b362c72d-351a-f2e3-9457-72d6818c97c0","document_version_independent_id":"50caf97e-a047-7f49-3a23-3b57ba420d7b","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a49e6e6bf793ca22cb92d5313c37eea597c589a/articles/design.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/design.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/design.md","rawTitle":"

Design of Unity

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Design of Unity","uid":"Article.Unity.Design","updated_at":"2019-11-25 08:32 PM","wordCount":301},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/features/index.html b/_site/articles/features/index.html new file mode 100644 index 0000000..71d0ef8 --- /dev/null +++ b/_site/articles/features/index.html @@ -0,0 +1 @@ +{"content":"\n

General Features

\n
    \n
  • No registration required for simple POCO types
  • \n
  • Registration/updates at any time (no builder required)
  • \n
  • Support registration metadata
  • \n
  • Support generic types
  • \n
  • Register existing objects
  • \n
  • Custom Type factories
  • \n
  • Register Type
  • \n
  • List all registrations
  • \n
  • Check existing registrations
  • \n
\n

Setup

\n
    \n
  • Registration\n
      \n
    • Type mappings\n
        \n
      • Register as a Type
      • \n
      • Support Type polymorphism
      • \n
      • Register as an implemented interface
      • \n
      • Multiple interfaces of the same Type
      • \n
      \n
    • \n
    • Register Type\n
        \n
      • Constructor selection\n
          \n
        • Constructor marked by attribute
        • \n
        • 'Smart' constructor selection\n
            \n
          • Longest constructor Unity can satisfy with parameters (dynamic)
          • \n
          • Legacy longest constructor (Extension)
          • \n
          \n
        • \n
        • Specific constructor (Injection Member)\n
            \n
          • By types of parameters
          • \n
          • By injected members
          • \n
          • By provided values
          • \n
          \n
        • \n
        \n
      • \n
      • Initializing Properties\n
          \n
        • Marked with attribute
        • \n
        • Injected during registration (Injection Member)
        • \n
        \n
      • \n
      • Initializing Fields\n
          \n
        • Marked with attribute
        • \n
        • Injected during registration (Injection Member)
        • \n
        \n
      • \n
      • Calling Methods on the object\n
          \n
        • Marked with attribute
        • \n
        • Injected during registration (Injection Member)\n
            \n
          • By types of parameters
          • \n
          • By injected members
          • \n
          • By provided values
          • \n
          \n
        • \n
        \n
      • \n
      \n
    • \n
    \n
  • \n
  • Registrations Collection\n
      \n
    • List registrations of the container
    • \n
    • Support registration hierarchies
    • \n
    \n
  • \n
  • Check if Type is registered\n
      \n
    • Fast and efficient algorithm
    • \n
    \n
  • \n
\n

Execution

\n

Initialization of existing objects (BuildUp)

\n
    \n
  • Perform initialization on already created objects
  • \n
  • Follow the same pattern as create (Resolve) object
  • \n
  • Compatible with Activator and Compiled pipelines
  • \n
  • Initialize Properties and Fields
  • \n
  • Call Methods and inject parameters
  • \n
\n

Create Instances (Resolve)

\n
    \n
  • Inject constructor with parameters
  • \n
  • Initialize Properties and Fields
  • \n
  • Call Methods and injects parameters
  • \n
  • Support Activator pipelines
  • \n
  • Create optimized (compiled) pipelines
  • \n
  • Seamlessly resolve registered instances or creates new objects
  • \n
  • Built-in support for deferred resolution\n
      \n
    • Func<T>
    • \n
    • Lazy<T>
    • \n
    \n
  • \n
  • Built-in support for collections\n
      \n
    • T[]
    • \n
    • IEnumerable<T>
    • \n
    \n
  • \n
  • Automatic concrete types resolution
  • \n
  • Dependency injection\n
      \n
    • Required
    • \n
    • Optional
    • \n
    • Supports Default parameters
    • \n
    • Injects with resolved parameters
    • \n
    • Injects with registered values
    • \n
    • Supports parameter overrides
    • \n
    \n
  • \n
  • Open-generic types\n
      \n
    • constraints
    • \n
    • variance
    • \n
    • nested
    • \n
    • recurring generic definitions
    • \n
    \n
  • \n
\n

Manages lifetime of objects

\n
    \n
  • Transient
  • \n
  • Singleton
  • \n
  • Per Container
  • \n
  • Per Container Transient
  • \n
  • Hierarchical
  • \n
  • External
  • \n
  • Per Thread
  • \n
  • Per Resolve
  • \n
  • Other (Extension)
  • \n
\n

Create child (Scoped) containers

\n
    \n
  • Create disposable child containers (scopes)
  • \n
\n

Extensibility

\n

Diagnostic

\n
    \n
  • Registration
  • \n
  • Injection Attribute
  • \n
  • Stack Overflow
  • \n
  • Cyclic reference
  • \n
\n

Legacy

\n
    \n
  • Legacy constructor selection
  • \n
\n

Functionality

\n
    \n
  • Configuration
  • \n
  • Interception
  • \n
  • Logging
  • \n
  • Web
  • \n
  • Etc.
  • \n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/22/2019","updated_at_date_time":"2019-03-22T22:10:41Z"},"_path":"articles/features/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/features/","conceptual":"\n

General Features

\n
    \n
  • No registration required for simple POCO types
  • \n
  • Registration/updates at any time (no builder required)
  • \n
  • Support registration metadata
  • \n
  • Support generic types
  • \n
  • Register existing objects
  • \n
  • Custom Type factories
  • \n
  • Register Type
  • \n
  • List all registrations
  • \n
  • Check existing registrations
  • \n
\n

Setup

\n
    \n
  • Registration\n
      \n
    • Type mappings\n
        \n
      • Register as a Type
      • \n
      • Support Type polymorphism
      • \n
      • Register as an implemented interface
      • \n
      • Multiple interfaces of the same Type
      • \n
      \n
    • \n
    • Register Type\n
        \n
      • Constructor selection\n
          \n
        • Constructor marked by attribute
        • \n
        • 'Smart' constructor selection\n
            \n
          • Longest constructor Unity can satisfy with parameters (dynamic)
          • \n
          • Legacy longest constructor (Extension)
          • \n
          \n
        • \n
        • Specific constructor (Injection Member)\n
            \n
          • By types of parameters
          • \n
          • By injected members
          • \n
          • By provided values
          • \n
          \n
        • \n
        \n
      • \n
      • Initializing Properties\n
          \n
        • Marked with attribute
        • \n
        • Injected during registration (Injection Member)
        • \n
        \n
      • \n
      • Initializing Fields\n
          \n
        • Marked with attribute
        • \n
        • Injected during registration (Injection Member)
        • \n
        \n
      • \n
      • Calling Methods on the object\n
          \n
        • Marked with attribute
        • \n
        • Injected during registration (Injection Member)\n
            \n
          • By types of parameters
          • \n
          • By injected members
          • \n
          • By provided values
          • \n
          \n
        • \n
        \n
      • \n
      \n
    • \n
    \n
  • \n
  • Registrations Collection\n
      \n
    • List registrations of the container
    • \n
    • Support registration hierarchies
    • \n
    \n
  • \n
  • Check if Type is registered\n
      \n
    • Fast and efficient algorithm
    • \n
    \n
  • \n
\n

Execution

\n

Initialization of existing objects (BuildUp)

\n
    \n
  • Perform initialization on already created objects
  • \n
  • Follow the same pattern as create (Resolve) object
  • \n
  • Compatible with Activator and Compiled pipelines
  • \n
  • Initialize Properties and Fields
  • \n
  • Call Methods and inject parameters
  • \n
\n

Create Instances (Resolve)

\n
    \n
  • Inject constructor with parameters
  • \n
  • Initialize Properties and Fields
  • \n
  • Call Methods and injects parameters
  • \n
  • Support Activator pipelines
  • \n
  • Create optimized (compiled) pipelines
  • \n
  • Seamlessly resolve registered instances or creates new objects
  • \n
  • Built-in support for deferred resolution\n
      \n
    • Func<T>
    • \n
    • Lazy<T>
    • \n
    \n
  • \n
  • Built-in support for collections\n
      \n
    • T[]
    • \n
    • IEnumerable<T>
    • \n
    \n
  • \n
  • Automatic concrete types resolution
  • \n
  • Dependency injection\n
      \n
    • Required
    • \n
    • Optional
    • \n
    • Supports Default parameters
    • \n
    • Injects with resolved parameters
    • \n
    • Injects with registered values
    • \n
    • Supports parameter overrides
    • \n
    \n
  • \n
  • Open-generic types\n
      \n
    • constraints
    • \n
    • variance
    • \n
    • nested
    • \n
    • recurring generic definitions
    • \n
    \n
  • \n
\n

Manages lifetime of objects

\n
    \n
  • Transient
  • \n
  • Singleton
  • \n
  • Per Container
  • \n
  • Per Container Transient
  • \n
  • Hierarchical
  • \n
  • External
  • \n
  • Per Thread
  • \n
  • Per Resolve
  • \n
  • Other (Extension)
  • \n
\n

Create child (Scoped) containers

\n
    \n
  • Create disposable child containers (scopes)
  • \n
\n

Extensibility

\n

Diagnostic

\n
    \n
  • Registration
  • \n
  • Injection Attribute
  • \n
  • Stack Overflow
  • \n
  • Cyclic reference
  • \n
\n

Legacy

\n
    \n
  • Legacy constructor selection
  • \n
\n

Functionality

\n
    \n
  • Configuration
  • \n
  • Interception
  • \n
  • Logging
  • \n
  • Web
  • \n
  • Etc.
  • \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/features.md","depot_name":".","document_id":"7e5161f5-b147-7283-ad4e-24b92f86aa94","document_version_independent_id":"d27ff859-57d2-8956-ce66-c2138968998c","gitcommit":"https://github.com/unitycontainer/documentation/blob/df7803bd64e560cd90a37d21d4db0bd5c1cdc503/articles/features.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/features.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/features.md","rawTitle":"

Features

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Features","uid":"Article.Unity.Features","updated_at":"2019-03-22 10:10 PM","wordCount":313},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/history/index.html b/_site/articles/history/index.html new file mode 100644 index 0000000..134f50c --- /dev/null +++ b/_site/articles/history/index.html @@ -0,0 +1 @@ +{"content":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
YearReleaseAuthors and Contributors
October 2017Unity 5GitHub Community Site
October 2015Unity 4GitHub Community Site
April 2014Unity 3.5CodePlex Community Site
April 2013Unity 3CodePlex Community Site
Aug 2012Unity 2.1CodePlex Community Site
April 2010Unity 2.0Grigori Melnik, Bob Brumfield, Chris Tavares, Fernando Simonazzi, Nicolas Botto, Olaf Conijn, Carlos Farre, Masashi Narumoto, Rohit Sharma, Lavanya Selvaraj, Magdelene Sona, Mani Krishnaswami, Meenakshi Krishnamoorthi, Santhosh Panneerselvam, Ravindra Varman, Erik Renaud, François Tanguay, Rick Carr, Alex Homer, Dennis DeWitt, RoAnn Corbisier, Steve Elston, Nancy Michel, Patrick Lanfear, Tom Draper, Richard Burte, Jennifer Burch, Tracy Emory
October 2008Unity Application Block 1.2Grigori Melnik, Chris Tavares, Fernando Simonazzi, Vijaya Janakiraman, Carlos Farre, Dennis DeWitt, Alex Homer, Nelly Delgado, RoAnn Corbisier, Tina Burden McGrayne, Richard Burte
May 2008Unity Application Block 1.1Grigori Melnik, Scott Densmore, William Loeffler, Chris Tavares, Fernando Simonazzi, Nicolas Botto, Hanz Zhang, Carlos Farre, Naveen Guda, Pooja Parate, Pravin Pawar, Ronita Acharya, Sai Pasumarthi, Venkata Appaji Sirangi, Vijaya Janakiraman, Alex Homer, Nelly Delgado, RoAnn Corbisier, Tina Burden McGrayne
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/16/2019","updated_at_date_time":"2019-03-16T20:42:53Z"},"_path":"articles/history/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/history/","conceptual":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
YearReleaseAuthors and Contributors
October 2017Unity 5GitHub Community Site
October 2015Unity 4GitHub Community Site
April 2014Unity 3.5CodePlex Community Site
April 2013Unity 3CodePlex Community Site
Aug 2012Unity 2.1CodePlex Community Site
April 2010Unity 2.0Grigori Melnik, Bob Brumfield, Chris Tavares, Fernando Simonazzi, Nicolas Botto, Olaf Conijn, Carlos Farre, Masashi Narumoto, Rohit Sharma, Lavanya Selvaraj, Magdelene Sona, Mani Krishnaswami, Meenakshi Krishnamoorthi, Santhosh Panneerselvam, Ravindra Varman, Erik Renaud, François Tanguay, Rick Carr, Alex Homer, Dennis DeWitt, RoAnn Corbisier, Steve Elston, Nancy Michel, Patrick Lanfear, Tom Draper, Richard Burte, Jennifer Burch, Tracy Emory
October 2008Unity Application Block 1.2Grigori Melnik, Chris Tavares, Fernando Simonazzi, Vijaya Janakiraman, Carlos Farre, Dennis DeWitt, Alex Homer, Nelly Delgado, RoAnn Corbisier, Tina Burden McGrayne, Richard Burte
May 2008Unity Application Block 1.1Grigori Melnik, Scott Densmore, William Loeffler, Chris Tavares, Fernando Simonazzi, Nicolas Botto, Hanz Zhang, Carlos Farre, Naveen Guda, Pooja Parate, Pravin Pawar, Ronita Acharya, Sai Pasumarthi, Venkata Appaji Sirangi, Vijaya Janakiraman, Alex Homer, Nelly Delgado, RoAnn Corbisier, Tina Burden McGrayne
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/history.md","depot_name":".","document_id":"a4e26158-c7cf-11a1-7e12-8fa419b1f274","document_version_independent_id":"3efb1167-e235-dd99-e5dd-5db9dde70f26","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/articles/history.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/history.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/history.md","rawTitle":"

The Unity Container History

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"The Unity Container History","uid":"Article.Unity.History","updated_at":"2019-03-16 08:42 PM","wordCount":175},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/installation/index.html b/_site/articles/installation/index.html new file mode 100644 index 0000000..2a2013f --- /dev/null +++ b/_site/articles/installation/index.html @@ -0,0 +1 @@ +{"content":"\n

Unity is designed to support a range of common scenarios for resolving instances of objects that, themselves, depend on other objects or services. However, you must first prepare your application to use Unity. The following procedure describes how to include the necessary assemblies and elements in your code.

\n

To prepare your application

\n

Before you can add Unity to your solution you need to decide if you want to reference packages individually (Abstractions, Container) or use composite Unity package.

\n

Referencing composite package

\n

Referencing single Unity package is more appropriate in case of small(ish) project, when everything is contained within one solution. Upgrading such solution is trivial with the help of NuGet Manager.

\n

Referencing individual packages

\n

Main benefit of referencing Abstractions and Container packages individually is when it is used in large project spanning multiple solutions, modules, and project files.

\n

Normally modular systems have one main application/module with boot-loader responsible for initializing environment, and number of modules loaded by it (Prism library for example). This boot loader is required to reference both Abstractions and Container packages.

\n

In such systems modules are created and distributed by various teams and departments and synchronization between these might be a challenge. This is where Unity comes in.\nAs stated elsewhere on this site Unity.Abstractions contains all declarations required by Unity to operate. Because of that modules could only reference one assembly: Unity.Abstractions

\n

This separation allows updates of patched container's engine without recompiling all the modules used in the system. Given that specifications change very infrequently and Unity.Abstractions package stays the same most of the time it provides big benefit in terms of saved development/testing time and money.

\n

Adding Unity to project

\n

Unity container is distributed via NuGet and could be added to a project with the help of NuGet manager or by executing command:

\n
Install-Package Unity\n\nor\n\nInstall-Package Unity.Abstractions\nInstall-Package Unity.Container\n
\n

If you wish to use Floating Version references it is recommended to lock in the minor and major versions and only allow patch version to slide:

\n
<PackageReference Include="Unity.Container" Version="5.9.*" />\n
\n

doing so will guarantee that no breaking change caught you of guard.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/4/2019","updated_at_date_time":"2019-03-04T02:14:05Z"},"_path":"articles/installation/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/installation/","conceptual":"\n

Unity is designed to support a range of common scenarios for resolving instances of objects that, themselves, depend on other objects or services. However, you must first prepare your application to use Unity. The following procedure describes how to include the necessary assemblies and elements in your code.

\n

To prepare your application

\n

Before you can add Unity to your solution you need to decide if you want to reference packages individually (Abstractions, Container) or use composite Unity package.

\n

Referencing composite package

\n

Referencing single Unity package is more appropriate in case of small(ish) project, when everything is contained within one solution. Upgrading such solution is trivial with the help of NuGet Manager.

\n

Referencing individual packages

\n

Main benefit of referencing Abstractions and Container packages individually is when it is used in large project spanning multiple solutions, modules, and project files.

\n

Normally modular systems have one main application/module with boot-loader responsible for initializing environment, and number of modules loaded by it (Prism library for example). This boot loader is required to reference both Abstractions and Container packages.

\n

In such systems modules are created and distributed by various teams and departments and synchronization between these might be a challenge. This is where Unity comes in.\nAs stated elsewhere on this site Unity.Abstractions contains all declarations required by Unity to operate. Because of that modules could only reference one assembly: Unity.Abstractions

\n

This separation allows updates of patched container's engine without recompiling all the modules used in the system. Given that specifications change very infrequently and Unity.Abstractions package stays the same most of the time it provides big benefit in terms of saved development/testing time and money.

\n

Adding Unity to project

\n

Unity container is distributed via NuGet and could be added to a project with the help of NuGet manager or by executing command:

\n
Install-Package Unity\n\nor\n\nInstall-Package Unity.Abstractions\nInstall-Package Unity.Container\n
\n

If you wish to use Floating Version references it is recommended to lock in the minor and major versions and only allow patch version to slide:

\n
<PackageReference Include="Unity.Container" Version="5.9.*" />\n
\n

doing so will guarantee that no breaking change caught you of guard.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/installation.md","depot_name":".","document_id":"f2c12317-d328-78fd-cc78-8bf80690406d","document_version_independent_id":"623501b4-0f80-ff38-3a41-051d28f127a9","gitcommit":"https://github.com/unitycontainer/documentation/blob/a08c5cd38778dbc7606660e730b63c1a6800daf1/articles/installation.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/installation.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/installation.md","rawTitle":"

Adding Unity to Your Application

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Adding Unity to Your Application","uid":"Article.Unity.Install","updated_at":"2019-03-04 02:14 AM","wordCount":347},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/introduction/index.html b/_site/articles/introduction/index.html new file mode 100644 index 0000000..471f250 --- /dev/null +++ b/_site/articles/introduction/index.html @@ -0,0 +1 @@ +{"content":"\n

Overview

\n

Unity Container is a full featured, general-purpose IoC container for use in any type of .NET application. It is Open Source and released under Apache 2.0 license.

\n

Unity is extensible. Anyone can write an extensions that changes the behavior of the container, or adds new capabilities. For example, the interception feature provided by Unity, which you can use to add policies to objects, is implemented as a container extension.

\n

What Does Unity Do

\n

Apart from decoupling types, components, services, and separating concerns, Unity crates and manages objects. Think of it as operator new ... on steroids.

\n\n

The Types of Objects Unity Can Create

\n

You can use the Unity container to generate instances of any object that has a public constructor (in other words, objects that you can create using the new operator). During object instantiation Unity can:

\n
    \n
  • Select appropriate constructor
  • \n
  • Inject constructor with parameters
  • \n
  • Inject public properties with values
  • \n
  • Inject public fields with values
  • \n
  • Call any public method on the created object
  • \n
\n

Registering Types and Object Instances

\n

Unity can resolve any concrete, constructable reference type without registration. For example calling container.Resolve<object>() will produce an instance immediately.

\n

Registrations allow mapping between service types and implementation types. Create a blueprint of how instances instantiated, initialized, and managed. For generic types it creates internal mini factories that used to generate concrete types. Unity supports three ways of registering types:

\n

Instance registration

\n

Unity exposes a method named RegisterInstance that you can use to register existing instances with the container. The instance could be registered as concrete type, a type of the instance you would get by calling instance.GetType(), or it could be registered as any of the interfaces the instance implements. Lifetime of registered instance could be either controlled by container it is registered with or externally, in which case Unity just keeps weak reference to the object.

\n

Factory registration

\n

Method RegisterFactory provides a way to register a factory delegate Unity would call when required to provide the type.

\n

Type registration

\n

RegisterType is a method where you can instruct Unity how to create and initialize objects from scratch. You can specify:

\n
    \n
  • Constructor to call
  • \n
  • Parameters to pass to the constructor or how to resolve them
  • \n
  • Properties to initialize and how to do it
  • \n
  • Fields to inject and with what
  • \n
  • Methods to call on the created object and parameters to pass to these methods
  • \n
  • Specify how lifetime should be managed
  • \n
\n

Managing the Lifetime of Objects

\n

Unity allows you to choose the lifetime of the objects it creates. By default, Unity creates a new instance of a type each time you resolve that type. However, you can use different lifetime managers to specify a required lifetime for resolved instances. For example, you can specify that Unity should maintain only a single instance (a singleton). It will create a new instance only if there is no existing instance. If there is an existing instance, it will return a reference to this instead. There are also other lifetime managers you can use.

\n

Specifying Values for Injection

\n

Unity allows configurations where dependencies are resolved from the container. But it also provides an easy way to configure injection of values at registration. In other words you could provide values for dependencies to be registered and used during subsequent resolutions.

\n

Unity also allows overriding of any dependency values during resolution. It could override any configured or resolved value during resolution of the type.

\n

Populating collections

\n

Unity has built-in support for resolving arrays and enumerations of types. For example it would recognize following types as collections and resolve them using proper algorithm:

\n
    \n
  • Resolve<T[]>()
  • \n
  • Resolve<IEnumerable<T>>()
  • \n
  • Resolve<List<T>>()
  • \n
\n

Support for deferred resolution

\n

Unity container implements strategies to allow deferred resolution of types. It has two types of deferred resolvers:

\n
    \n
  • Func<T> - Creates factory method which instantiates type T on demand.
  • \n
  • Lazy<T> - Creates Lazy<T> object and passes it to created type.
  • \n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"11/25/2019","updated_at_date_time":"2019-11-25T20:32:40Z"},"_path":"articles/introduction/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/introduction/","conceptual":"\n

Overview

\n

Unity Container is a full featured, general-purpose IoC container for use in any type of .NET application. It is Open Source and released under Apache 2.0 license.

\n

Unity is extensible. Anyone can write an extensions that changes the behavior of the container, or adds new capabilities. For example, the interception feature provided by Unity, which you can use to add policies to objects, is implemented as a container extension.

\n

What Does Unity Do

\n

Apart from decoupling types, components, services, and separating concerns, Unity crates and manages objects. Think of it as operator new ... on steroids.

\n\n

The Types of Objects Unity Can Create

\n

You can use the Unity container to generate instances of any object that has a public constructor (in other words, objects that you can create using the new operator). During object instantiation Unity can:

\n
    \n
  • Select appropriate constructor
  • \n
  • Inject constructor with parameters
  • \n
  • Inject public properties with values
  • \n
  • Inject public fields with values
  • \n
  • Call any public method on the created object
  • \n
\n

Registering Types and Object Instances

\n

Unity can resolve any concrete, constructable reference type without registration. For example calling container.Resolve<object>() will produce an instance immediately.

\n

Registrations allow mapping between service types and implementation types. Create a blueprint of how instances instantiated, initialized, and managed. For generic types it creates internal mini factories that used to generate concrete types. Unity supports three ways of registering types:

\n

Instance registration

\n

Unity exposes a method named RegisterInstance that you can use to register existing instances with the container. The instance could be registered as concrete type, a type of the instance you would get by calling instance.GetType(), or it could be registered as any of the interfaces the instance implements. Lifetime of registered instance could be either controlled by container it is registered with or externally, in which case Unity just keeps weak reference to the object.

\n

Factory registration

\n

Method RegisterFactory provides a way to register a factory delegate Unity would call when required to provide the type.

\n

Type registration

\n

RegisterType is a method where you can instruct Unity how to create and initialize objects from scratch. You can specify:

\n
    \n
  • Constructor to call
  • \n
  • Parameters to pass to the constructor or how to resolve them
  • \n
  • Properties to initialize and how to do it
  • \n
  • Fields to inject and with what
  • \n
  • Methods to call on the created object and parameters to pass to these methods
  • \n
  • Specify how lifetime should be managed
  • \n
\n

Managing the Lifetime of Objects

\n

Unity allows you to choose the lifetime of the objects it creates. By default, Unity creates a new instance of a type each time you resolve that type. However, you can use different lifetime managers to specify a required lifetime for resolved instances. For example, you can specify that Unity should maintain only a single instance (a singleton). It will create a new instance only if there is no existing instance. If there is an existing instance, it will return a reference to this instead. There are also other lifetime managers you can use.

\n

Specifying Values for Injection

\n

Unity allows configurations where dependencies are resolved from the container. But it also provides an easy way to configure injection of values at registration. In other words you could provide values for dependencies to be registered and used during subsequent resolutions.

\n

Unity also allows overriding of any dependency values during resolution. It could override any configured or resolved value during resolution of the type.

\n

Populating collections

\n

Unity has built-in support for resolving arrays and enumerations of types. For example it would recognize following types as collections and resolve them using proper algorithm:

\n
    \n
  • Resolve<T[]>()
  • \n
  • Resolve<IEnumerable<T>>()
  • \n
  • Resolve<List<T>>()
  • \n
\n

Support for deferred resolution

\n

Unity container implements strategies to allow deferred resolution of types. It has two types of deferred resolvers:

\n
    \n
  • Func<T> - Creates factory method which instantiates type T on demand.
  • \n
  • Lazy<T> - Creates Lazy<T> object and passes it to created type.
  • \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/introduction.md","depot_name":".","document_id":"edb43f99-5118-5174-37b2-f733fa1abf87","document_version_independent_id":"e3b1d344-8371-7dbc-ed8d-707d380a75d4","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a49e6e6bf793ca22cb92d5313c37eea597c589a/articles/introduction.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/introduction.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/introduction.md","rawTitle":"

Unity Container Introduction

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Container Introduction","uid":"Article.Unity.Introduction","updated_at":"2019-11-25 08:32 PM","wordCount":664},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/quickstart/index.html b/_site/articles/quickstart/index.html new file mode 100644 index 0000000..5c12594 --- /dev/null +++ b/_site/articles/quickstart/index.html @@ -0,0 +1 @@ +{"content":"\n

This topic describes how to develop applications using Unity, and how to create and build instances of objects. It assumes that you familiar with dependency injection and separation of concerns concepts.

\n

The Container

\n

Unity exposes very compact API to operate the container. The most operations related to registration, resolution, and lifetime management is exposed through one interface - IUnityContainer.

\n

To start using Unity you need to create an instance of the container and get reference to IUnityContainer interface:

\n
IUnityContainer container = new UnityContainer();\n
\n

Creating instances

\n

Once container is created you could start using it immediately:

\n
IUnityContainer container = new UnityContainer();\nvar value = container.Resolve<object>();\n\n// Calling Resolve<object>() is the same as \nvalue = new object(); \n
\n

It will create any type with accessible constructor. Consider following example:

\n
// Simple class Foo\npublic class Foo\n{\n    public Foo() { }\n\n    public Foo(object obj) { }\n\n    public Foo(string id, object obj) { }\n}\n\n// Create container\nIUnityContainer container = new UnityContainer();\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(object obj)'\n
\n

Foo is a simple class with three public constructors. When Resolve<Foo>() is called, Unity will evaluate available constructors and select one with longest list of parameters it can satisfy with dependencies. It will create all required dependencies and pass them to selected constructor during initialization.

\n

In this particular case Unity will select second constructor with parameter obj of type Object. Although constructor Foo(string id, object obj) is longer, it has parameter of type String which is a primitive type. Unity can not create primitive types by itself. If you want to make these available for dependency injection you would need to register them with the container. For Unity to select third constructor Foo(string id, object obj) you need to register string instance with container:

\n
// Register string instance\ncontainer.RegisterInstance("xyz");\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(string id, object obj)'\n
\n

For more information on how Unity selects members see Member Selection

\n

Type Mapping

\n

In service oriented architecture contracts are represented by interfaces and components implement these contracts to provide services. Consider these types:

\n
// Public service contract\npublic interface IService \n{\n    // Service API\n}\n\n\n// Component implementing the contract\npublic class Component : IService\n{\n    // Some logic here\n}\n\n\n// Service consumer\npublic class Foo\n{\n    public Foo(IService service)\n    {\n        // Some logic here\n    }\n}\n
\n

In this example we have IService interface defining an API and class Component implementing that API. Type Foo is a consumer of the service and should be injected by container with an instance of the service during initialization.

\n

If you just call container.Resolve<IService>() it will throw an exception complaining that it can not create an interface of type IService. You need to register a Type Mapping to instructs Unity how to create service of type IService:

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>();\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(IService service)'\n
\n

During the resolution, when Unity will try to satisfy dependencies, it will look for a registration for each dependency and will find this mapping. It will create Component and passes it to constructor of Foo as IService.

\n

For more information see Type Mapping

\n

Lifetime

\n

By default Unity creates a new instance every time type is requested. Instances it created are not tracked or managed by the container.

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>();\n\n// Resolve IService\nvar value1 = container.Resolve<IService>();\nvar value2 = container.Resolve<IService>();\n\n// value1 and value2 are not the same\n
\n

To enable lifetime management, type needs to be registered with one of the compatible lifetime managers. Depending on registration type Unity provides three helpers:

\n\n

For example, to make IService a singleton for the entire application and create it only once you would register it like this:

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>(TypeLifetime.Singleton);\n\n// Resolve IService\nvar value1 = container.Resolve<IService>();\nvar value2 = container.Resolve<IService>();\n\n// value1 and value2 are the same instance of Component\n
\n

For more information see Lifetime Management

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T01:18:55Z"},"_path":"articles/quickstart/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/quickstart/","conceptual":"\n

This topic describes how to develop applications using Unity, and how to create and build instances of objects. It assumes that you familiar with dependency injection and separation of concerns concepts.

\n

The Container

\n

Unity exposes very compact API to operate the container. The most operations related to registration, resolution, and lifetime management is exposed through one interface - IUnityContainer.

\n

To start using Unity you need to create an instance of the container and get reference to IUnityContainer interface:

\n
IUnityContainer container = new UnityContainer();\n
\n

Creating instances

\n

Once container is created you could start using it immediately:

\n
IUnityContainer container = new UnityContainer();\nvar value = container.Resolve<object>();\n\n// Calling Resolve<object>() is the same as \nvalue = new object(); \n
\n

It will create any type with accessible constructor. Consider following example:

\n
// Simple class Foo\npublic class Foo\n{\n    public Foo() { }\n\n    public Foo(object obj) { }\n\n    public Foo(string id, object obj) { }\n}\n\n// Create container\nIUnityContainer container = new UnityContainer();\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(object obj)'\n
\n

Foo is a simple class with three public constructors. When Resolve<Foo>() is called, Unity will evaluate available constructors and select one with longest list of parameters it can satisfy with dependencies. It will create all required dependencies and pass them to selected constructor during initialization.

\n

In this particular case Unity will select second constructor with parameter obj of type Object. Although constructor Foo(string id, object obj) is longer, it has parameter of type String which is a primitive type. Unity can not create primitive types by itself. If you want to make these available for dependency injection you would need to register them with the container. For Unity to select third constructor Foo(string id, object obj) you need to register string instance with container:

\n
// Register string instance\ncontainer.RegisterInstance("xyz");\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(string id, object obj)'\n
\n

For more information on how Unity selects members see Member Selection

\n

Type Mapping

\n

In service oriented architecture contracts are represented by interfaces and components implement these contracts to provide services. Consider these types:

\n
// Public service contract\npublic interface IService \n{\n    // Service API\n}\n\n\n// Component implementing the contract\npublic class Component : IService\n{\n    // Some logic here\n}\n\n\n// Service consumer\npublic class Foo\n{\n    public Foo(IService service)\n    {\n        // Some logic here\n    }\n}\n
\n

In this example we have IService interface defining an API and class Component implementing that API. Type Foo is a consumer of the service and should be injected by container with an instance of the service during initialization.

\n

If you just call container.Resolve<IService>() it will throw an exception complaining that it can not create an interface of type IService. You need to register a Type Mapping to instructs Unity how to create service of type IService:

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>();\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(IService service)'\n
\n

During the resolution, when Unity will try to satisfy dependencies, it will look for a registration for each dependency and will find this mapping. It will create Component and passes it to constructor of Foo as IService.

\n

For more information see Type Mapping

\n

Lifetime

\n

By default Unity creates a new instance every time type is requested. Instances it created are not tracked or managed by the container.

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>();\n\n// Resolve IService\nvar value1 = container.Resolve<IService>();\nvar value2 = container.Resolve<IService>();\n\n// value1 and value2 are not the same\n
\n

To enable lifetime management, type needs to be registered with one of the compatible lifetime managers. Depending on registration type Unity provides three helpers:

\n\n

For example, to make IService a singleton for the entire application and create it only once you would register it like this:

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>(TypeLifetime.Singleton);\n\n// Resolve IService\nvar value1 = container.Resolve<IService>();\nvar value2 = container.Resolve<IService>();\n\n// value1 and value2 are the same instance of Component\n
\n

For more information see Lifetime Management

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/quickstart.md","depot_name":".","document_id":"1eb2a883-aa19-c5b5-593b-d6b67c1546f6","document_version_independent_id":"3c85a775-179c-fd58-72d6-437a7041a3f0","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/articles/quickstart.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/quickstart.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/quickstart.md","rawTitle":"

Using Unity in Applications

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Using Unity in Applications","uid":"Article.Unity.Using","updated_at":"2019-04-30 01:18 AM","wordCount":674},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/toc.json b/_site/articles/toc.json new file mode 100644 index 0000000..fae5c66 --- /dev/null +++ b/_site/articles/toc.json @@ -0,0 +1 @@ +{"metadata":{"_appTitle":"Unity Container","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appFaviconPath":"images/favicon.png"},"items":[{"name":"Introduction","href":"introduction/","uid":"Article.Unity.Introduction"},{"name":"Features","href":"features/","uid":"Article.Unity.Features"},{"name":"Design of Unity","href":"design/","uid":"Article.Unity.Design"},{"name":"Application Design","href":"application/","uid":"Article.Application.Design"},{"name":"Adding Unity to application","href":"installation/","uid":"Article.Unity.Install"},{"name":"Quick Start","href":"quickstart/","uid":"Article.Unity.Using"},{"name":"Change Log","href":"changelog/","uid":"Article.Change.Log"}]} \ No newline at end of file diff --git a/_site/filemap.json b/_site/filemap.json new file mode 100644 index 0000000..f0ef25c --- /dev/null +++ b/_site/filemap.json @@ -0,0 +1 @@ +{"host":"https://","locale":"en-us","base_path":"/","source_base_path":".","version_info":{},"from_docfx_v3":true,"file_mapping":{"api/index.md":{"type":"Content","output_relative_path":"api/index.html","asset_id":"api/index"},"articles/application.md":{"type":"Content","output_relative_path":"articles/application/index.html","asset_id":"articles/application"},"articles/changelog.md":{"type":"Content","output_relative_path":"articles/changelog/index.html","asset_id":"articles/changelog"},"articles/design.md":{"type":"Content","output_relative_path":"articles/design/index.html","asset_id":"articles/design"},"articles/features.md":{"type":"Content","output_relative_path":"articles/features/index.html","asset_id":"articles/features"},"articles/history.md":{"type":"Content","output_relative_path":"articles/history/index.html","asset_id":"articles/history"},"articles/installation.md":{"type":"Content","output_relative_path":"articles/installation/index.html","asset_id":"articles/installation"},"articles/introduction.md":{"type":"Content","output_relative_path":"articles/introduction/index.html","asset_id":"articles/introduction"},"articles/quickstart.md":{"type":"Content","output_relative_path":"articles/quickstart/index.html","asset_id":"articles/quickstart"},"images/favicon.png":{"type":"Resource","output_relative_path":"images/favicon.png","asset_id":"images/favicon.png"},"images/logo.svg":{"type":"Resource","output_relative_path":"images/logo.svg","asset_id":"images/logo.svg"},"images/resolver-override.png":{"type":"Resource","output_relative_path":"images/resolver-override.png","asset_id":"images/resolver-override.png"},"index.md":{"type":"Content","output_relative_path":"index.html","asset_id":"index"},"README.md":{"type":"Content","output_relative_path":"readme/index.html","asset_id":"readme"},"specs/constructor.md":{"type":"Content","output_relative_path":"specs/constructor/index.html","asset_id":"specs/constructor"},"specs/field.md":{"type":"Content","output_relative_path":"specs/field/index.html","asset_id":"specs/field"},"specs/hierarchy.md":{"type":"Content","output_relative_path":"specs/hierarchy/index.html","asset_id":"specs/hierarchy"},"specs/method.md":{"type":"Content","output_relative_path":"specs/method/index.html","asset_id":"specs/method"},"specs/property.md":{"type":"Content","output_relative_path":"specs/property/index.html","asset_id":"specs/property"},"specs/specification.md":{"type":"Content","output_relative_path":"specs/specification/index.html","asset_id":"specs/specification"},"specs/summary.md":{"type":"Content","output_relative_path":"specs/summary/index.html","asset_id":"specs/summary"},"specs/workflow.md":{"type":"Content","output_relative_path":"specs/workflow/index.html","asset_id":"specs/workflow"},"tutorials/Annotation/annotation.md":{"type":"Content","output_relative_path":"tutorials/annotation/annotation/index.html","asset_id":"tutorials/annotation/annotation"},"tutorials/Annotation/constructor.md":{"type":"Content","output_relative_path":"tutorials/annotation/constructor/index.html","asset_id":"tutorials/annotation/constructor"},"tutorials/Annotation/field.md":{"type":"Content","output_relative_path":"tutorials/annotation/field/index.html","asset_id":"tutorials/annotation/field"},"tutorials/Annotation/method.md":{"type":"Content","output_relative_path":"tutorials/annotation/method/index.html","asset_id":"tutorials/annotation/method"},"tutorials/Annotation/parameter.md":{"type":"Content","output_relative_path":"tutorials/annotation/parameter/index.html","asset_id":"tutorials/annotation/parameter"},"tutorials/Annotation/property.md":{"type":"Content","output_relative_path":"tutorials/annotation/property/index.html","asset_id":"tutorials/annotation/property"},"tutorials/Composition/BuildUp/buildup.md":{"type":"Content","output_relative_path":"tutorials/composition/buildup/buildup/index.html","asset_id":"tutorials/composition/buildup/buildup"},"tutorials/Composition/collections.md":{"type":"Content","output_relative_path":"tutorials/composition/collections/index.html","asset_id":"tutorials/composition/collections"},"tutorials/Composition/composition.md":{"type":"Content","output_relative_path":"tutorials/composition/composition/index.html","asset_id":"tutorials/composition/composition"},"tutorials/Composition/Generics/deferred.md":{"type":"Content","output_relative_path":"tutorials/composition/generics/deferred/index.html","asset_id":"tutorials/composition/generics/deferred"},"tutorials/Composition/Generics/generics.md":{"type":"Content","output_relative_path":"tutorials/composition/generics/generics/index.html","asset_id":"tutorials/composition/generics/generics"},"tutorials/Composition/Generics/lazy.md":{"type":"Content","output_relative_path":"tutorials/composition/generics/lazy/index.html","asset_id":"tutorials/composition/generics/lazy"},"tutorials/Composition/Generics/metadata.md":{"type":"Content","output_relative_path":"tutorials/composition/generics/metadata/index.html","asset_id":"tutorials/composition/generics/metadata"},"tutorials/Composition/Mapping/generic.md":{"type":"Content","output_relative_path":"tutorials/composition/mapping/generic/index.html","asset_id":"tutorials/composition/mapping/generic"},"tutorials/Composition/Mapping/implementation.md":{"type":"Content","output_relative_path":"tutorials/composition/mapping/implementation/index.html","asset_id":"tutorials/composition/mapping/implementation"},"tutorials/Composition/Mapping/mapping.md":{"type":"Content","output_relative_path":"tutorials/composition/mapping/mapping/index.html","asset_id":"tutorials/composition/mapping/mapping"},"tutorials/Composition/Overrides/dependency.md":{"type":"Content","output_relative_path":"tutorials/composition/overrides/dependency/index.html","asset_id":"tutorials/composition/overrides/dependency"},"tutorials/Composition/Overrides/field.md":{"type":"Content","output_relative_path":"tutorials/composition/overrides/field/index.html","asset_id":"tutorials/composition/overrides/field"},"tutorials/Composition/Overrides/override.md":{"type":"Content","output_relative_path":"tutorials/composition/overrides/override/index.html","asset_id":"tutorials/composition/overrides/override"},"tutorials/Composition/Overrides/parameter.md":{"type":"Content","output_relative_path":"tutorials/composition/overrides/parameter/index.html","asset_id":"tutorials/composition/overrides/parameter"},"tutorials/Composition/Overrides/property.md":{"type":"Content","output_relative_path":"tutorials/composition/overrides/property/index.html","asset_id":"tutorials/composition/overrides/property"},"tutorials/Composition/Resolution/resolution.md":{"type":"Content","output_relative_path":"tutorials/composition/resolution/resolution/index.html","asset_id":"tutorials/composition/resolution/resolution"},"tutorials/Composition/Resolution/type.md":{"type":"Content","output_relative_path":"tutorials/composition/resolution/type/index.html","asset_id":"tutorials/composition/resolution/type"},"tutorials/Composition/Selection/constructor.md":{"type":"Content","output_relative_path":"tutorials/composition/selection/constructor/index.html","asset_id":"tutorials/composition/selection/constructor"},"tutorials/Composition/Selection/selection.md":{"type":"Content","output_relative_path":"tutorials/composition/selection/selection/index.html","asset_id":"tutorials/composition/selection/selection"},"tutorials/definitions.md":{"type":"Content","output_relative_path":"tutorials/definitions/index.html","asset_id":"tutorials/definitions"},"tutorials/Extensions/activation.md":{"type":"Content","output_relative_path":"tutorials/extensions/activation/index.html","asset_id":"tutorials/extensions/activation"},"tutorials/Extensions/compilation.md":{"type":"Content","output_relative_path":"tutorials/extensions/compilation/index.html","asset_id":"tutorials/extensions/compilation"},"tutorials/Extensions/diagnostic.md":{"type":"Content","output_relative_path":"tutorials/extensions/diagnostic/index.html","asset_id":"tutorials/extensions/diagnostic"},"tutorials/Extensions/extensions.md":{"type":"Content","output_relative_path":"tutorials/extensions/extensions/index.html","asset_id":"tutorials/extensions/extensions"},"tutorials/Extensions/legacy.md":{"type":"Content","output_relative_path":"tutorials/extensions/legacy/index.html","asset_id":"tutorials/extensions/legacy"},"tutorials/hierarchies.md":{"type":"Content","output_relative_path":"tutorials/hierarchies/index.html","asset_id":"tutorials/hierarchies"},"tutorials/lifetime/container.md":{"type":"Content","output_relative_path":"tutorials/lifetime/container/index.html","asset_id":"tutorials/lifetime/container"},"tutorials/lifetime/container_transient.md":{"type":"Content","output_relative_path":"tutorials/lifetime/container_transient/index.html","asset_id":"tutorials/lifetime/container_transient"},"tutorials/lifetime/disposal.md":{"type":"Content","output_relative_path":"tutorials/lifetime/disposal/index.html","asset_id":"tutorials/lifetime/disposal"},"tutorials/lifetime/external.md":{"type":"Content","output_relative_path":"tutorials/lifetime/external/index.html","asset_id":"tutorials/lifetime/external"},"tutorials/lifetime/hierarchical.md":{"type":"Content","output_relative_path":"tutorials/lifetime/hierarchical/index.html","asset_id":"tutorials/lifetime/hierarchical"},"tutorials/lifetime/lifetime.md":{"type":"Content","output_relative_path":"tutorials/lifetime/lifetime/index.html","asset_id":"tutorials/lifetime/lifetime"},"tutorials/lifetime/managers.md":{"type":"Content","output_relative_path":"tutorials/lifetime/managers/index.html","asset_id":"tutorials/lifetime/managers"},"tutorials/lifetime/resolve.md":{"type":"Content","output_relative_path":"tutorials/lifetime/resolve/index.html","asset_id":"tutorials/lifetime/resolve"},"tutorials/lifetime/singleton.md":{"type":"Content","output_relative_path":"tutorials/lifetime/singleton/index.html","asset_id":"tutorials/lifetime/singleton"},"tutorials/lifetime/thread.md":{"type":"Content","output_relative_path":"tutorials/lifetime/thread/index.html","asset_id":"tutorials/lifetime/thread"},"tutorials/lifetime/transient.md":{"type":"Content","output_relative_path":"tutorials/lifetime/transient/index.html","asset_id":"tutorials/lifetime/transient"},"tutorials/registration/factory.md":{"type":"Content","output_relative_path":"tutorials/registration/factory/index.html","asset_id":"tutorials/registration/factory"},"tutorials/registration/instance.md":{"type":"Content","output_relative_path":"tutorials/registration/instance/index.html","asset_id":"tutorials/registration/instance"},"tutorials/registration/metadata.md":{"type":"Content","output_relative_path":"tutorials/registration/metadata/index.html","asset_id":"tutorials/registration/metadata"},"tutorials/registration/registration.md":{"type":"Content","output_relative_path":"tutorials/registration/registration/index.html","asset_id":"tutorials/registration/registration"},"tutorials/registration/Type/Constructor/annotation.md":{"type":"Content","output_relative_path":"tutorials/registration/type/constructor/annotation/index.html","asset_id":"tutorials/registration/type/constructor/annotation"},"tutorials/registration/Type/Constructor/automatic.md":{"type":"Content","output_relative_path":"tutorials/registration/type/constructor/automatic/index.html","asset_id":"tutorials/registration/type/constructor/automatic"},"tutorials/registration/Type/Constructor/constructor.md":{"type":"Content","output_relative_path":"tutorials/registration/type/constructor/constructor/index.html","asset_id":"tutorials/registration/type/constructor/constructor"},"tutorials/registration/Type/Constructor/param_count.md":{"type":"Content","output_relative_path":"tutorials/registration/type/constructor/param_count/index.html","asset_id":"tutorials/registration/type/constructor/param_count"},"tutorials/registration/Type/Constructor/param_none.md":{"type":"Content","output_relative_path":"tutorials/registration/type/constructor/param_none/index.html","asset_id":"tutorials/registration/type/constructor/param_none"},"tutorials/registration/Type/Constructor/param_types.md":{"type":"Content","output_relative_path":"tutorials/registration/type/constructor/param_types/index.html","asset_id":"tutorials/registration/type/constructor/param_types"},"tutorials/registration/Type/Constructor/param_values.md":{"type":"Content","output_relative_path":"tutorials/registration/type/constructor/param_values/index.html","asset_id":"tutorials/registration/type/constructor/param_values"},"tutorials/registration/Type/field.md":{"type":"Content","output_relative_path":"tutorials/registration/type/field/index.html","asset_id":"tutorials/registration/type/field"},"tutorials/registration/Type/Injection/default.md":{"type":"Content","output_relative_path":"tutorials/registration/type/injection/default/index.html","asset_id":"tutorials/registration/type/injection/default"},"tutorials/registration/Type/Injection/injected.md":{"type":"Content","output_relative_path":"tutorials/registration/type/injection/injected/index.html","asset_id":"tutorials/registration/type/injection/injected"},"tutorials/registration/Type/Injection/injection.md":{"type":"Content","output_relative_path":"tutorials/registration/type/injection/injection/index.html","asset_id":"tutorials/registration/type/injection/injection"},"tutorials/registration/Type/Injection/resolved.md":{"type":"Content","output_relative_path":"tutorials/registration/type/injection/resolved/index.html","asset_id":"tutorials/registration/type/injection/resolved"},"tutorials/registration/Type/method.md":{"type":"Content","output_relative_path":"tutorials/registration/type/method/index.html","asset_id":"tutorials/registration/type/method"},"tutorials/registration/Type/parameter.md":{"type":"Content","output_relative_path":"tutorials/registration/type/parameter/index.html","asset_id":"tutorials/registration/type/parameter"},"tutorials/registration/Type/property.md":{"type":"Content","output_relative_path":"tutorials/registration/type/property/index.html","asset_id":"tutorials/registration/type/property"},"tutorials/registration/Type/registration.md":{"type":"Content","output_relative_path":"tutorials/registration/type/registration/index.html","asset_id":"tutorials/registration/type/registration"}}} \ No newline at end of file diff --git a/_site/full-dependent-list.txt b/_site/full-dependent-list.txt new file mode 100644 index 0000000..f97f279 --- /dev/null +++ b/_site/full-dependent-list.txt @@ -0,0 +1,345 @@ +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\api\\index.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\api\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\application.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\changelog.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\design.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\application.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\design.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\features.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\history.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\installation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\introduction.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\selection.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\application.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\changelog.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\design.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\features.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\installation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\introduction.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\index.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\README.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\hierarchy.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\specification.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\specification.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\workflow.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\summary.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\field.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\method.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\property.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\specification.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\workflow.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\api\\toc.yml"} +{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\introduction.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\field.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\parameter.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\property.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\parameter.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\field.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\parameter.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\property.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\buildup.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\buildup.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\collections.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\composition.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\composition.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\deferred.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\generics.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\lazy.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\deferred.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\lazy.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\metadata.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\generic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\implementation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\generic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\implementation.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\dependency.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\dependency.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\field.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\parameter.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\property.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\parameter.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\dependency.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\field.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\parameter.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\property.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\collections.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\deferred.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\generics.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\type.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md"} +{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\type.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\type.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\selection.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\toc.yml"} +{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\collections.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\definitions.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\activation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\compilation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\extensions.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\legacy.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\activation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\compilation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\legacy.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\disposal.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md"} +{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\default.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\injected.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\injection.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\resolved.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\default.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\injected.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\resolved.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\parameter.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\field.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\method.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\property.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\field.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\method.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\property.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml"} \ No newline at end of file diff --git a/_site/index.html b/_site/index.html new file mode 100644 index 0000000..0910130 --- /dev/null +++ b/_site/index.html @@ -0,0 +1 @@ +{"content":"\n

Overview

\n

The Unity Container (Unity) is a lightweight, extensible dependency injection container. It facilitates building loosely coupled applications and provides developers with the following advantages:

\n
    \n
  • Simplified object creation, especially for hierarchical object structures and dependencies
  • \n
  • Abstraction of requirements; this allows developers to specify dependencies at run time or in configuration and simplify management of crosscutting concerns
  • \n
  • Increased flexibility by deferring component configuration to the container
  • \n
  • Service location capability; this allows clients to store or cache the container
  • \n
  • Instance and type interception
  • \n
  • Registration by convention
  • \n
\n

Issues and Contributions

\n
    \n
  • If something is broken and you know how to fix it, send a pull request.
  • \n
  • If you have no idea what is wrong, create an issue
  • \n
\n

Any feedback and contributions are welcome

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/16/2019","updated_at_date_time":"2019-03-16T23:50:26Z"},"_path":"index.html","_tocRel":"toc.json","canonical_url":"https:///en-us/","conceptual":"\n

Overview

\n

The Unity Container (Unity) is a lightweight, extensible dependency injection container. It facilitates building loosely coupled applications and provides developers with the following advantages:

\n
    \n
  • Simplified object creation, especially for hierarchical object structures and dependencies
  • \n
  • Abstraction of requirements; this allows developers to specify dependencies at run time or in configuration and simplify management of crosscutting concerns
  • \n
  • Increased flexibility by deferring component configuration to the container
  • \n
  • Service location capability; this allows clients to store or cache the container
  • \n
  • Instance and type interception
  • \n
  • Registration by convention
  • \n
\n

Issues and Contributions

\n
    \n
  • If something is broken and you know how to fix it, send a pull request.
  • \n
  • If you have no idea what is wrong, create an issue
  • \n
\n

Any feedback and contributions are welcome

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/index.md","depot_name":".","document_id":"b3c1f04b-5bdb-1c10-5237-024cf382b4cc","document_version_independent_id":"a79c6ec2-6514-508d-7d8a-5afe2098424f","gitcommit":"https://github.com/unitycontainer/documentation/blob/16b05445e1104378b26179a5de654cade919d174/index.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/index.md","original_content_git_url_template":"{repo}/blob/{branch}/index.md","rawTitle":"

Welcome to Unity Container Documentation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Welcome to Unity Container Documentation","updated_at":"2019-03-16 11:50 PM","wordCount":119},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"_themes"} \ No newline at end of file diff --git a/_site/op_aggregated_file_map_info.json b/_site/op_aggregated_file_map_info.json new file mode 100644 index 0000000..f14206f --- /dev/null +++ b/_site/op_aggregated_file_map_info.json @@ -0,0 +1 @@ +{"aggregated_file_map_items":{"api/index.md":{"dependencies":[{"from_file_path":"api/index.md","to_file_path":"api/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/application.md":{"dependencies":[{"from_file_path":"articles/application.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/changelog.md":{"dependencies":[{"from_file_path":"articles/changelog.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/design.md":{"dependencies":[{"from_file_path":"articles/design.md","to_file_path":"articles/application.md","dependency_type":"uid"},{"from_file_path":"articles/design.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/features.md":{"dependencies":[{"from_file_path":"articles/features.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/history.md":{"dependencies":[{"from_file_path":"articles/history.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/installation.md":{"dependencies":[{"from_file_path":"articles/installation.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/introduction.md":{"dependencies":[{"from_file_path":"articles/introduction.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/quickstart.md":{"dependencies":[{"from_file_path":"articles/quickstart.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"},{"from_file_path":"articles/quickstart.md","to_file_path":"tutorials/Composition/Mapping/mapping.md","dependency_type":"uid"},{"from_file_path":"articles/quickstart.md","to_file_path":"tutorials/Composition/Selection/selection.md","dependency_type":"uid"},{"from_file_path":"articles/quickstart.md","to_file_path":"tutorials/lifetime/lifetime.md","dependency_type":"uid"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"index.md":{"dependencies":[{"from_file_path":"index.md","to_file_path":"toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"README.md":{"dependencies":[{"from_file_path":"README.md","to_file_path":"toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/constructor.md":{"dependencies":[{"from_file_path":"specs/constructor.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/field.md":{"dependencies":[{"from_file_path":"specs/field.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/hierarchy.md":{"dependencies":[{"from_file_path":"specs/hierarchy.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/method.md":{"dependencies":[{"from_file_path":"specs/method.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/property.md":{"dependencies":[{"from_file_path":"specs/property.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/specification.md":{"dependencies":[{"from_file_path":"specs/specification.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"},{"from_file_path":"specs/specification.md","to_file_path":"specs/workflow.md","dependency_type":"include"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/summary.md":{"dependencies":[{"from_file_path":"specs/summary.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/workflow.md":{"dependencies":[{"from_file_path":"specs/workflow.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Annotation/annotation.md":{"dependencies":[{"from_file_path":"tutorials/Annotation/annotation.md","to_file_path":"tutorials/Annotation/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/annotation.md","to_file_path":"tutorials/Annotation/field.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/annotation.md","to_file_path":"tutorials/Annotation/method.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/annotation.md","to_file_path":"tutorials/Annotation/parameter.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/annotation.md","to_file_path":"tutorials/Annotation/property.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/annotation.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Annotation/constructor.md":{"dependencies":[{"from_file_path":"tutorials/Annotation/constructor.md","to_file_path":"tutorials/Composition/Selection/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/constructor.md","to_file_path":"tutorials/Extensions/diagnostic.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/constructor.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Annotation/field.md":{"dependencies":[{"from_file_path":"tutorials/Annotation/field.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Annotation/method.md":{"dependencies":[{"from_file_path":"tutorials/Annotation/method.md","to_file_path":"tutorials/Extensions/diagnostic.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/method.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Annotation/parameter.md":{"dependencies":[{"from_file_path":"tutorials/Annotation/parameter.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Annotation/property.md":{"dependencies":[{"from_file_path":"tutorials/Annotation/property.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/BuildUp/buildup.md":{"dependencies":[{"from_file_path":"tutorials/Composition/BuildUp/buildup.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/collections.md":{"dependencies":[{"from_file_path":"tutorials/Composition/collections.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/composition.md":{"dependencies":[{"from_file_path":"tutorials/Composition/composition.md","to_file_path":"tutorials/Composition/Resolution/resolution.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/composition.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Generics/deferred.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Generics/deferred.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Generics/generics.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Generics/generics.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Generics/lazy.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Generics/lazy.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Generics/metadata.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Generics/metadata.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Mapping/generic.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Mapping/generic.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Mapping/implementation.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Mapping/implementation.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Mapping/mapping.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Mapping/mapping.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Overrides/dependency.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Overrides/dependency.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Overrides/field.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Overrides/field.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Overrides/override.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Overrides/override.md","to_file_path":"tutorials/Composition/Overrides/dependency.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Overrides/override.md","to_file_path":"tutorials/Composition/Overrides/field.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Overrides/override.md","to_file_path":"tutorials/Composition/Overrides/parameter.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Overrides/override.md","to_file_path":"tutorials/Composition/Overrides/property.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Overrides/override.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Overrides/parameter.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Overrides/parameter.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Overrides/property.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Overrides/property.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Resolution/resolution.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Resolution/resolution.md","to_file_path":"tutorials/Composition/collections.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Resolution/resolution.md","to_file_path":"tutorials/Composition/Generics/deferred.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Resolution/resolution.md","to_file_path":"tutorials/Composition/Generics/generics.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Resolution/resolution.md","to_file_path":"tutorials/Composition/Overrides/override.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Resolution/resolution.md","to_file_path":"tutorials/Composition/Resolution/type.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Resolution/resolution.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Resolution/type.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Resolution/type.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Selection/constructor.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Selection/constructor.md","to_file_path":"tutorials/Annotation/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Selection/constructor.md","to_file_path":"tutorials/Annotation/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Selection/constructor.md","to_file_path":"tutorials/Extensions/diagnostic.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Selection/constructor.md","to_file_path":"tutorials/registration/metadata.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Selection/constructor.md","to_file_path":"tutorials/registration/registration.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Selection/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Selection/constructor.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Selection/selection.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Selection/selection.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/definitions.md":{"dependencies":[{"from_file_path":"tutorials/definitions.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Extensions/activation.md":{"dependencies":[{"from_file_path":"tutorials/Extensions/activation.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Extensions/compilation.md":{"dependencies":[{"from_file_path":"tutorials/Extensions/compilation.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Extensions/diagnostic.md":{"dependencies":[{"from_file_path":"tutorials/Extensions/diagnostic.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Extensions/extensions.md":{"dependencies":[{"from_file_path":"tutorials/Extensions/extensions.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Extensions/legacy.md":{"dependencies":[{"from_file_path":"tutorials/Extensions/legacy.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/hierarchies.md":{"dependencies":[{"from_file_path":"tutorials/hierarchies.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/container.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/container_transient.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/registration/factory.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/registration/instance.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/registration/Type/registration.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/disposal.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/disposal.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/external.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/registration/instance.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/hierarchical.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/registration/factory.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/registration/instance.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/registration/Type/registration.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/lifetime.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/managers.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/resolve.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/registration/factory.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/registration/instance.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/registration/Type/registration.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/singleton.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/thread.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/registration/factory.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/registration/instance.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/registration/Type/registration.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/transient.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/factory.md":{"dependencies":[{"from_file_path":"tutorials/registration/factory.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/instance.md":{"dependencies":[{"from_file_path":"tutorials/registration/instance.md","to_file_path":"tutorials/Composition/Mapping/mapping.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/instance.md","to_file_path":"tutorials/registration/metadata.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/instance.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/metadata.md":{"dependencies":[{"from_file_path":"tutorials/registration/metadata.md","to_file_path":"tutorials/Composition/Mapping/mapping.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/metadata.md","to_file_path":"tutorials/lifetime/lifetime.md","dependency_type":"file"},{"from_file_path":"tutorials/registration/metadata.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/registration.md":{"dependencies":[{"from_file_path":"tutorials/registration/registration.md","to_file_path":"tutorials/hierarchies.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/registration.md","to_file_path":"tutorials/registration/factory.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/registration.md","to_file_path":"tutorials/registration/instance.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/registration.md","to_file_path":"tutorials/registration/Type/registration.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/registration.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Constructor/annotation.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/Annotation/constructor.md","dependency_type":"include"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/Composition/Selection/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/Extensions/diagnostic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/registration/Type/Constructor/automatic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/registration/Type/Constructor/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/registration/Type/Constructor/param_count.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/registration/Type/Constructor/param_none.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/registration/Type/Constructor/param_types.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/registration/Type/Constructor/param_values.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Constructor/automatic.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/Annotation/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/Annotation/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/Composition/Selection/constructor.md","dependency_type":"include"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/Extensions/diagnostic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/metadata.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/registration.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/Type/Constructor/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/Type/Constructor/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/Type/Constructor/param_count.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/Type/Constructor/param_none.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/Type/Constructor/param_types.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/Type/Constructor/param_values.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Constructor/constructor.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/Annotation/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/Extensions/diagnostic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/automatic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/param_count.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/param_none.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/param_types.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/param_values.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Constructor/param_count.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Constructor/param_count.md","to_file_path":"tutorials/registration/Type/Constructor/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_count.md","to_file_path":"tutorials/registration/Type/Constructor/automatic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_count.md","to_file_path":"tutorials/registration/Type/Constructor/param_none.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_count.md","to_file_path":"tutorials/registration/Type/Constructor/param_types.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_count.md","to_file_path":"tutorials/registration/Type/Constructor/param_values.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_count.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Constructor/param_none.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Constructor/param_none.md","to_file_path":"tutorials/Extensions/diagnostic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_none.md","to_file_path":"tutorials/registration/Type/Constructor/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_none.md","to_file_path":"tutorials/registration/Type/Constructor/automatic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_none.md","to_file_path":"tutorials/registration/Type/Constructor/param_count.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_none.md","to_file_path":"tutorials/registration/Type/Constructor/param_types.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_none.md","to_file_path":"tutorials/registration/Type/Constructor/param_values.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_none.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Constructor/param_types.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Constructor/param_types.md","to_file_path":"tutorials/registration/Type/Constructor/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_types.md","to_file_path":"tutorials/registration/Type/Constructor/automatic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_types.md","to_file_path":"tutorials/registration/Type/Constructor/param_count.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_types.md","to_file_path":"tutorials/registration/Type/Constructor/param_none.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_types.md","to_file_path":"tutorials/registration/Type/Constructor/param_values.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_types.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Constructor/param_values.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Constructor/param_values.md","to_file_path":"tutorials/registration/Type/Constructor/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_values.md","to_file_path":"tutorials/registration/Type/Constructor/automatic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_values.md","to_file_path":"tutorials/registration/Type/Constructor/param_count.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_values.md","to_file_path":"tutorials/registration/Type/Constructor/param_none.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_values.md","to_file_path":"tutorials/registration/Type/Constructor/param_types.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_values.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/field.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/field.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Injection/default.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Injection/default.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Injection/injected.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Injection/injected.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Injection/injection.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Injection/injection.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Injection/resolved.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Injection/resolved.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/method.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/method.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/parameter.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/parameter.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/property.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/property.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/registration.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/registration.md","to_file_path":"tutorials/lifetime/lifetime.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/registration.md","to_file_path":"tutorials/registration/Type/Constructor/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/registration.md","to_file_path":"tutorials/registration/Type/field.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/registration.md","to_file_path":"tutorials/registration/Type/method.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/registration.md","to_file_path":"tutorials/registration/Type/property.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/registration.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"}},"docset_infos":{"":{"docset_name":"","docset_path_to_root":""}}} \ No newline at end of file diff --git a/_site/readme/index.html b/_site/readme/index.html new file mode 100644 index 0000000..97da97a --- /dev/null +++ b/_site/readme/index.html @@ -0,0 +1 @@ +{"content":"

\"Build

\n

Unity Documentation

\n

This repository hosts source files and instructions for building Unity documentation site: https://unitycontainer.github.io

\n

If you'd like to contribute documentation or report an issue please do it in this repository.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/24/2019","updated_at_date_time":"2019-04-24T23:00:26Z"},"_path":"readme/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/readme/","conceptual":"

\"Build

\n

Unity Documentation

\n

This repository hosts source files and instructions for building Unity documentation site: https://unitycontainer.github.io

\n

If you'd like to contribute documentation or report an issue please do it in this repository.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/README.md","depot_name":".","document_id":"fa044e91-957c-6e6a-c3ea-f34d2312c709","document_version_independent_id":"394d5e5a-5a94-224f-1e9d-b5f0091e3023","gitcommit":"https://github.com/unitycontainer/documentation/blob/5792a5d4ced17c39833a82a94f817173edd8b1e8/README.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/README.md","original_content_git_url_template":"{repo}/blob/{branch}/README.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Documentation","updated_at":"2019-04-24 11:00 PM","wordCount":31},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\_themes"} \ No newline at end of file diff --git a/_site/server-side-dependent-list.txt b/_site/server-side-dependent-list.txt new file mode 100644 index 0000000..f97f279 --- /dev/null +++ b/_site/server-side-dependent-list.txt @@ -0,0 +1,345 @@ +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\api\\index.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\api\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\application.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\changelog.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\design.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\application.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\design.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\features.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\history.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\installation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\introduction.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\selection.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\application.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\changelog.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\design.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\features.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\installation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\introduction.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\index.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\README.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\hierarchy.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\specification.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\specification.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\workflow.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\summary.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\field.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\method.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\property.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\specification.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\workflow.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\api\\toc.yml"} +{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\introduction.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} +{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\field.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\parameter.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\property.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\parameter.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\field.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\parameter.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\property.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\buildup.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\buildup.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\collections.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\composition.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\composition.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\deferred.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\generics.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\lazy.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\deferred.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\lazy.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\metadata.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\generic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\implementation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\generic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\implementation.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\dependency.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\dependency.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\field.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\parameter.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\property.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\parameter.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\dependency.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\field.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\parameter.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\property.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\collections.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\deferred.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\generics.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\type.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md"} +{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\type.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\type.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\selection.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\toc.yml"} +{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\collections.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\definitions.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\activation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\compilation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\extensions.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\legacy.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\activation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\compilation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\legacy.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\disposal.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md"} +{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\default.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\injected.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\injection.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\resolved.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\default.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\injected.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\resolved.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\parameter.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\field.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\method.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\property.md"} +{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\field.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\method.md"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\property.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml"} +{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml"} +{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml"} \ No newline at end of file diff --git a/_site/specs/constructor/index.html b/_site/specs/constructor/index.html new file mode 100644 index 0000000..5cb0914 --- /dev/null +++ b/_site/specs/constructor/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/5/2019","updated_at_date_time":"2019-03-05T04:11:35Z"},"_path":"specs/constructor/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/constructor/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/constructor.md","depot_name":".","document_id":"9126e7af-2f05-1f78-b222-208d57a3bbb1","document_version_independent_id":"4409ebf6-cdc5-f9d9-28e6-71bf0dc9ec0d","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/constructor.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/constructor.md","rawTitle":"

Constructor Invocation Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Constructor Invocation Specification","uid":"Specification.Constructor","updated_at":"2019-03-05 04:11 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/specs/field/index.html b/_site/specs/field/index.html new file mode 100644 index 0000000..ffd1161 --- /dev/null +++ b/_site/specs/field/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/5/2019","updated_at_date_time":"2019-03-05T04:11:35Z"},"_path":"specs/field/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/field/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/field.md","depot_name":".","document_id":"21325644-f894-73be-1ffe-22351adaad7b","document_version_independent_id":"532ca89a-e39a-c516-ca5b-83cc77530ab6","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/field.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/field.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/field.md","rawTitle":"

Field Injection Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Field Injection Specification","uid":"Specification.Field","updated_at":"2019-03-05 04:11 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/specs/hierarchy/index.html b/_site/specs/hierarchy/index.html new file mode 100644 index 0000000..c4ceac2 --- /dev/null +++ b/_site/specs/hierarchy/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/5/2019","updated_at_date_time":"2019-03-05T04:11:35Z"},"_path":"specs/hierarchy/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/hierarchy/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/hierarchy.md","depot_name":".","document_id":"cf95aa64-1190-5120-381c-3c4424395527","document_version_independent_id":"defd991b-323a-be9a-4b2f-89bdff23d53f","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/hierarchy.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/hierarchy.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/hierarchy.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","updated_at":"2019-03-05 04:11 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/specs/method/index.html b/_site/specs/method/index.html new file mode 100644 index 0000000..45d6717 --- /dev/null +++ b/_site/specs/method/index.html @@ -0,0 +1 @@ +{"content":"\n

Method invocation is an optional step you can add to the created object's initialization. Any accessible method could be invoked, provided Unity can satisfy all the parameters with appropriate values.

\n

Supported Methods

\n

Any accessible method of constructed type can be invoked during initialization.

\n

Multiple methods can be configured for invokation.

\n

Generic methods

\n

Only closed generic methods can be invoked during initialization.

\n

Restrictions

\n

Static methods cannot be invoked

\n

Unity does not support invocation of static methods.

\n

Methods with ref or out parameters cannot be invoked

\n

Invoking methods containing ref or out parameters is not supported.

\n

Invoking private and protected methods is not allowed

\n

Although it is technically possible to call private and protected methods of the class, Unity does not support this feature. This restriction is implemented to impose consistency with accessibility principles of C# language.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/5/2019","updated_at_date_time":"2019-03-05T04:11:35Z"},"_path":"specs/method/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/method/","conceptual":"\n

Method invocation is an optional step you can add to the created object's initialization. Any accessible method could be invoked, provided Unity can satisfy all the parameters with appropriate values.

\n

Supported Methods

\n

Any accessible method of constructed type can be invoked during initialization.

\n

Multiple methods can be configured for invokation.

\n

Generic methods

\n

Only closed generic methods can be invoked during initialization.

\n

Restrictions

\n

Static methods cannot be invoked

\n

Unity does not support invocation of static methods.

\n

Methods with ref or out parameters cannot be invoked

\n

Invoking methods containing ref or out parameters is not supported.

\n

Invoking private and protected methods is not allowed

\n

Although it is technically possible to call private and protected methods of the class, Unity does not support this feature. This restriction is implemented to impose consistency with accessibility principles of C# language.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/method.md","depot_name":".","document_id":"f07424a8-34d7-92fa-61b3-a4e680ff7cbc","document_version_independent_id":"8efce70f-f741-dcef-7f20-e6b8d20c4c96","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/method.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/method.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/method.md","rawTitle":"

Method Invocation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Method Invocation","uid":"Specification.Method","updated_at":"2019-03-05 04:11 AM","wordCount":135},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/specs/property/index.html b/_site/specs/property/index.html new file mode 100644 index 0000000..8e86598 --- /dev/null +++ b/_site/specs/property/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/5/2019","updated_at_date_time":"2019-03-05T04:11:35Z"},"_path":"specs/property/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/property/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/property.md","depot_name":".","document_id":"339f73ff-b58d-aa2b-9b70-0699fe989112","document_version_independent_id":"4ee9895a-57be-0951-3adc-89b15a05f315","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/property.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/property.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/property.md","rawTitle":"

Property Injection Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Injection Specification","uid":"Specification.Property","updated_at":"2019-03-05 04:11 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/specs/specification/index.html b/_site/specs/specification/index.html new file mode 100644 index 0000000..6d622dd --- /dev/null +++ b/_site/specs/specification/index.html @@ -0,0 +1 @@ +{"content":"\n

1 Introduction

\n

Unity is a full featured, general-purpose container for use in any type of Microsoft® .NET Framework-based application. It provides all of the features commonly found in dependency injection implementations.

\n

In addition, Unity is extensible. You can write container extensions that change the behavior of the container, or add new capabilities. For example, the interception feature provided by Unity, which you can use to add policies to objects, is implemented as a container extension.

\n

2 Terms and Definitions

\n

2.1 Injection

\n

2.2 Dependency

\n

2.3 Contract

\n
    \n
  • Type
  • \n
  • Name
  • \n
\n

2.4 Metadata

\n

2.5 Lifetime

\n

3 Workflow

\n

Setup

\n

Before container could be used it should be prepared for operation.

\n

Creating Container

\n
Root
\n
Scopes
\n

Type Contracts

\n
Implicit
\n
Mapping
\n
Explicit
\n
    \n
  • Instance
  • \n
  • Factory
  • \n
  • Type
  • \n
\n

Provide Services

\n

Locate Contract

\n
Existing
\n
Hierarchical
\n
None
\n
Create Locally
\n
With the registration
\n
At the root
\n

Execute contract

\n
From lifetime manager
\n
From pipeline
\n

Manage created objects

\n

Teardown

\n

Dispose child scopes

\n

Dispose managed objects

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/6/2019","updated_at_date_time":"2019-03-06T23:21:05Z"},"_path":"specs/specification/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/specification/","conceptual":"\n

1 Introduction

\n

Unity is a full featured, general-purpose container for use in any type of Microsoft® .NET Framework-based application. It provides all of the features commonly found in dependency injection implementations.

\n

In addition, Unity is extensible. You can write container extensions that change the behavior of the container, or add new capabilities. For example, the interception feature provided by Unity, which you can use to add policies to objects, is implemented as a container extension.

\n

2 Terms and Definitions

\n

2.1 Injection

\n

2.2 Dependency

\n

2.3 Contract

\n
    \n
  • Type
  • \n
  • Name
  • \n
\n

2.4 Metadata

\n

2.5 Lifetime

\n

3 Workflow

\n

Setup

\n

Before container could be used it should be prepared for operation.

\n

Creating Container

\n
Root
\n
Scopes
\n

Type Contracts

\n
Implicit
\n
Mapping
\n
Explicit
\n
    \n
  • Instance
  • \n
  • Factory
  • \n
  • Type
  • \n
\n

Provide Services

\n

Locate Contract

\n
Existing
\n
Hierarchical
\n
None
\n
Create Locally
\n
With the registration
\n
At the root
\n

Execute contract

\n
From lifetime manager
\n
From pipeline
\n

Manage created objects

\n

Teardown

\n

Dispose child scopes

\n

Dispose managed objects

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/specification.md","depot_name":".","document_id":"af1bdcaf-14d5-7e77-0ec5-01d6d1c40baf","document_version_independent_id":"67bda16f-dd4a-fce2-8c4b-7bf7ce6f0edc","gitcommit":"https://github.com/unitycontainer/documentation/blob/fcf3dc0a8e1438e5b0d980be1f7a8ea83ed2efdc/specs/specification.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/specification.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/specification.md","rawTitle":"

Unity Container Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Container Specification","uid":"Specification.Unity","updated_at":"2019-03-06 11:21 PM","wordCount":149},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/specs/summary/index.html b/_site/specs/summary/index.html new file mode 100644 index 0000000..f6c4231 --- /dev/null +++ b/_site/specs/summary/index.html @@ -0,0 +1 @@ +{"content":"\n
    \n
  1. Introduction
  2. \n
  3. Terms and Definitions\n
      \n
    1. Injection
    2. \n
    3. Dependency
    4. \n
    5. Contract\n
        \n
      • Type
      • \n
      • Name
      • \n
      \n
    6. \n
    7. Metadata
    8. \n
    9. Lifetime
    10. \n
    \n
  4. \n
  5. Workflow\n
      \n
    1. Setup\n
        \n
      1. Creating Container\n
          \n
        1. Root
        2. \n
        3. Scopes
        4. \n
        \n
      2. \n
      3. Type Contracts\n
          \n
        1. Implicit
        2. \n
        3. Mapping
        4. \n
        5. Explicit\n
            \n
          • Instance
          • \n
          • Factory
          • \n
          • Type
          • \n
          \n
        6. \n
        \n
      4. \n
      \n
    2. \n
    3. Provide Services\n
        \n
      1. Locate Contract\n
          \n
        1. Existing
        2. \n
        3. Hierarchical
        4. \n
        5. None\n
            \n
          1. Create Locally
          2. \n
          3. With the registration
          4. \n
          5. At the root
          6. \n
          \n
        6. \n
        \n
      2. \n
      3. Execute contract\n
          \n
        1. From lifetime manager
        2. \n
        3. From pipeline
        4. \n
        \n
      4. \n
      \n
    4. \n
    5. Manage created objects
    6. \n
    \n
  6. \n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/6/2019","updated_at_date_time":"2019-03-06T23:21:05Z"},"_path":"specs/summary/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/summary/","conceptual":"\n
    \n
  1. Introduction
  2. \n
  3. Terms and Definitions\n
      \n
    1. Injection
    2. \n
    3. Dependency
    4. \n
    5. Contract\n
        \n
      • Type
      • \n
      • Name
      • \n
      \n
    6. \n
    7. Metadata
    8. \n
    9. Lifetime
    10. \n
    \n
  4. \n
  5. Workflow\n
      \n
    1. Setup\n
        \n
      1. Creating Container\n
          \n
        1. Root
        2. \n
        3. Scopes
        4. \n
        \n
      2. \n
      3. Type Contracts\n
          \n
        1. Implicit
        2. \n
        3. Mapping
        4. \n
        5. Explicit\n
            \n
          • Instance
          • \n
          • Factory
          • \n
          • Type
          • \n
          \n
        6. \n
        \n
      4. \n
      \n
    2. \n
    3. Provide Services\n
        \n
      1. Locate Contract\n
          \n
        1. Existing
        2. \n
        3. Hierarchical
        4. \n
        5. None\n
            \n
          1. Create Locally
          2. \n
          3. With the registration
          4. \n
          5. At the root
          6. \n
          \n
        6. \n
        \n
      2. \n
      3. Execute contract\n
          \n
        1. From lifetime manager
        2. \n
        3. From pipeline
        4. \n
        \n
      4. \n
      \n
    4. \n
    5. Manage created objects
    6. \n
    \n
  6. \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/summary.md","depot_name":".","document_id":"ebc52faa-cf9e-bb28-e329-137befaf18c0","document_version_independent_id":"9271befb-21eb-ce4a-1048-1301c975b0d0","gitcommit":"https://github.com/unitycontainer/documentation/blob/fcf3dc0a8e1438e5b0d980be1f7a8ea83ed2efdc/specs/summary.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/summary.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/summary.md","rawTitle":"

Summary

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Summary","uid":"Specification.Summary","updated_at":"2019-03-06 11:21 PM","wordCount":50},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/specs/toc.json b/_site/specs/toc.json new file mode 100644 index 0000000..f679593 --- /dev/null +++ b/_site/specs/toc.json @@ -0,0 +1 @@ +{"metadata":{"_appTitle":"Unity Container","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appFaviconPath":"images/favicon.png"},"items":[{"name":"Introduction","href":"specification/","uid":"Specification.Unity"},{"name":"Method","href":"method/","uid":"Specification.Method"},{"name":"Field","href":"field/","uid":"Specification.Field"},{"name":"Property","href":"property/","uid":"Specification.Property"},{"name":"Specification","href":"specification/","uid":"Specification.Unity"}]} \ No newline at end of file diff --git a/_site/specs/workflow/index.html b/_site/specs/workflow/index.html new file mode 100644 index 0000000..581e2b6 --- /dev/null +++ b/_site/specs/workflow/index.html @@ -0,0 +1 @@ +{"content":"\n

Before container could be used it should be prepared for operation.

\n

Creating Container

\n
Root
\n
Scopes
\n

Type Contracts

\n
Implicit
\n
Mapping
\n
Explicit
\n
    \n
  • Instance
  • \n
  • Factory
  • \n
  • Type
  • \n
\n

Provide Services

\n

Locate Contract

\n
Existing
\n
Hierarchical
\n
None
\n
Create Locally
\n
With the registration
\n
At the root
\n

Execute contract

\n
From lifetime manager
\n
From pipeline
\n

Manage created objects

\n

Teardown

\n

Dispose child scopes

\n

Dispose managed objects

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/6/2019","updated_at_date_time":"2019-03-06T03:02:40Z"},"_path":"specs/workflow/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/workflow/","conceptual":"\n

Before container could be used it should be prepared for operation.

\n

Creating Container

\n
Root
\n
Scopes
\n

Type Contracts

\n
Implicit
\n
Mapping
\n
Explicit
\n
    \n
  • Instance
  • \n
  • Factory
  • \n
  • Type
  • \n
\n

Provide Services

\n

Locate Contract

\n
Existing
\n
Hierarchical
\n
None
\n
Create Locally
\n
With the registration
\n
At the root
\n

Execute contract

\n
From lifetime manager
\n
From pipeline
\n

Manage created objects

\n

Teardown

\n

Dispose child scopes

\n

Dispose managed objects

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/workflow.md","depot_name":".","document_id":"92912b1a-fce7-7872-3d33-3afd56ebc1eb","document_version_independent_id":"a7106ca5-04de-eed2-29a3-e2b877b19db9","gitcommit":"https://github.com/unitycontainer/documentation/blob/ddaee7af1f7438438cc8e0af39906104a6afe004/specs/workflow.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/workflow.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/workflow.md","rawTitle":"

Setup

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Workflow","uid":"Specification.Workflow","updated_at":"2019-03-06 03:02 AM","wordCount":55},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/toc.json b/_site/toc.json new file mode 100644 index 0000000..a3b1dde --- /dev/null +++ b/_site/toc.json @@ -0,0 +1 @@ +{"metadata":{"_appTitle":"Unity Container","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appFaviconPath":"images/favicon.png"},"items":[{"name":"Overview","href":"articles/introduction/"},{"name":"Tutorials","href":"tutorials/hierarchies/"},{"name":"Api Documentation"}]} \ No newline at end of file diff --git a/_site/tutorials/annotation/annotation/index.html b/_site/tutorials/annotation/annotation/index.html new file mode 100644 index 0000000..dbe7187 --- /dev/null +++ b/_site/tutorials/annotation/annotation/index.html @@ -0,0 +1 @@ +{"content":"\n

One of the most useful and powerful techniques when using Unity is to take advantage of dependency injection for the parameters of class constructors and methods, and for the values of fields and properties. This approach allows you to resolve and populate the entire hierarchy of objects used in your application based on type registrations and mappings defined in the container, with the subsequent advantages this offers.

\n

You can specify constructor, field, property, and method call injection information in configuration or by adding registrations to the container at run time. You can also apply attributes to members of your classes to indicate injection targets. When you resolve these classes through the container, Unity will generate instances of the dependent objects and wire up the injection targets with these instances.

\n

Using Injection Attributes

\n

Normally, Unity performs selection of the constructor automatically by choosing the most complex constructor it can satisfy with dependencies and populating these parameters with resolved values when it constructs the object. In some cases, for various reasons, the constructor could not be selected successfully and container may throw an exception.

\n

Constructor Annotation

\n

To disambiguate selection or to override automatic behavior you could specify which constructor Unity should use to construct the object by marking it with InjectionConstructor attribute.

\n

Member Annotation

\n

Property, field, and method call injections do not occur automatically unless registered with appropriate injection members at run time. To enable automatic member injection for types you can add attributes to the members of your classes to force injection of dependent objects when the target class is resolved.

\n

Required and Optional

\n

Fields, Properties, and Parameters could be annotated with either Dependency or OptionalDependency attributes to indicate that these require values to be injected. For annotating methods you wish to be called during initialization you could use InjectionMethod

\n

For more information, see:

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/16/2019","updated_at_date_time":"2019-03-16T20:42:53Z"},"_path":"tutorials/annotation/annotation/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/annotation/annotation/","conceptual":"\n

One of the most useful and powerful techniques when using Unity is to take advantage of dependency injection for the parameters of class constructors and methods, and for the values of fields and properties. This approach allows you to resolve and populate the entire hierarchy of objects used in your application based on type registrations and mappings defined in the container, with the subsequent advantages this offers.

\n

You can specify constructor, field, property, and method call injection information in configuration or by adding registrations to the container at run time. You can also apply attributes to members of your classes to indicate injection targets. When you resolve these classes through the container, Unity will generate instances of the dependent objects and wire up the injection targets with these instances.

\n

Using Injection Attributes

\n

Normally, Unity performs selection of the constructor automatically by choosing the most complex constructor it can satisfy with dependencies and populating these parameters with resolved values when it constructs the object. In some cases, for various reasons, the constructor could not be selected successfully and container may throw an exception.

\n

Constructor Annotation

\n

To disambiguate selection or to override automatic behavior you could specify which constructor Unity should use to construct the object by marking it with InjectionConstructor attribute.

\n

Member Annotation

\n

Property, field, and method call injections do not occur automatically unless registered with appropriate injection members at run time. To enable automatic member injection for types you can add attributes to the members of your classes to force injection of dependent objects when the target class is resolved.

\n

Required and Optional

\n

Fields, Properties, and Parameters could be annotated with either Dependency or OptionalDependency attributes to indicate that these require values to be injected. For annotating methods you wish to be called during initialization you could use InjectionMethod

\n

For more information, see:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/annotation.md","depot_name":".","document_id":"29642b10-fdb8-4b72-8854-aa787580a1f2","document_version_independent_id":"49daebef-832d-2c5b-99f9-0b1b2cc00ffb","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/tutorials/Annotation/annotation.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/annotation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/annotation.md","rawTitle":"

Attributed Injection Model

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Attributed Injection Model","uid":"Tutorial.Annotation","updated_at":"2019-03-16 08:42 PM","wordCount":327},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/annotation/constructor/index.html b/_site/tutorials/annotation/constructor/index.html new file mode 100644 index 0000000..716eb2f --- /dev/null +++ b/_site/tutorials/annotation/constructor/index.html @@ -0,0 +1 @@ +{"content":"\n

To select constructors you create through the Unity container, you can use the following three techniques:

\n\n

Annotated Constructor Injection

\n

Constructor Injection with Attribute Annotation allows you to apply attributes to the class' constructor designating it for dependency injection. When creating the class, Unity will always (unless explicitly overwritten in Registration) use that constructor. You only need to use this technique when there is more than one constructor in the target type.

\n

Annotating a Constructor

\n

When a target class contains more than one constructor and the automatic algorithm does not provide desired selection, you may use the InjectionConstructor attribute to specify the constructor you wish to use for injection.

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this example type Service contains four public constructors. Three of these constructors have one parameter each. A Type like this creates an ambiguity that Unity could not resolve by itself.

\n
\n
WARNING
\n

During resolution, the container will pick the first constructor it could satisfy with dependencies and will use it. In the example above, it could be any of the three constructors with one parameter.

\n
\n

The container is not trying to validate all available contractors during normal execution.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructors.

\n
\n

Normally, Unity would select the third constructor with three parameters, but by annotating the second constructor with the attribute you force Unity to use it during resolution.

\n

Multiple Constructor Annotations

\n

Annotating multiple constructors with injection parameters is not recommended. Unity is not guaranteed to process constructors in certain order. If multiple constructors are annotated, behavior might change from version to version.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructor annotations.

\n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/annotation/constructor/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/annotation/constructor/","conceptual":"\n

To select constructors you create through the Unity container, you can use the following three techniques:

\n\n

Annotated Constructor Injection

\n

Constructor Injection with Attribute Annotation allows you to apply attributes to the class' constructor designating it for dependency injection. When creating the class, Unity will always (unless explicitly overwritten in Registration) use that constructor. You only need to use this technique when there is more than one constructor in the target type.

\n

Annotating a Constructor

\n

When a target class contains more than one constructor and the automatic algorithm does not provide desired selection, you may use the InjectionConstructor attribute to specify the constructor you wish to use for injection.

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this example type Service contains four public constructors. Three of these constructors have one parameter each. A Type like this creates an ambiguity that Unity could not resolve by itself.

\n
\n
WARNING
\n

During resolution, the container will pick the first constructor it could satisfy with dependencies and will use it. In the example above, it could be any of the three constructors with one parameter.

\n
\n

The container is not trying to validate all available contractors during normal execution.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructors.

\n
\n

Normally, Unity would select the third constructor with three parameters, but by annotating the second constructor with the attribute you force Unity to use it during resolution.

\n

Multiple Constructor Annotations

\n

Annotating multiple constructors with injection parameters is not recommended. Unity is not guaranteed to process constructors in certain order. If multiple constructors are annotated, behavior might change from version to version.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructor annotations.

\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/constructor.md","depot_name":".","document_id":"78a4a31f-8f9d-b1b8-c4d8-5ee0709c8dc8","document_version_independent_id":"f6ecaf01-9c4e-2b5e-7627-55221cde4f1c","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Annotation/constructor.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/constructor.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating Type for Constructor Injection","uid":"Tutorial.Annotation.Constructor","updated_at":"2019-04-05 01:56 AM","wordCount":385},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/annotation/field/index.html b/_site/tutorials/annotation/field/index.html new file mode 100644 index 0000000..eb5b12b --- /dev/null +++ b/_site/tutorials/annotation/field/index.html @@ -0,0 +1 @@ +{"content":"\n

By default Unity does not inject any fields of the classes it creates.

\n

To enable field injection you need to configure Unity during registration of annotate appropriate fields with dependency attributes. Unity supports two types of field injection:

\n
    \n
  • Required injection - Unity either satisfies this dependency or throws an exception
  • \n
  • Optional injection - Unity either satisfies this dependency or returns null
  • \n
\n

Field injection

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/6/2019","updated_at_date_time":"2019-03-06T03:02:40Z"},"_path":"tutorials/annotation/field/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/annotation/field/","conceptual":"\n

By default Unity does not inject any fields of the classes it creates.

\n

To enable field injection you need to configure Unity during registration of annotate appropriate fields with dependency attributes. Unity supports two types of field injection:

\n
    \n
  • Required injection - Unity either satisfies this dependency or throws an exception
  • \n
  • Optional injection - Unity either satisfies this dependency or returns null
  • \n
\n

Field injection

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/field.md","depot_name":".","document_id":"3e5f244d-d6a9-5148-d40d-89c6eb8569f6","document_version_independent_id":"fa6bed51-64f2-74c1-6c10-b4352c0c8e58","gitcommit":"https://github.com/unitycontainer/documentation/blob/ddaee7af1f7438438cc8e0af39906104a6afe004/tutorials/Annotation/field.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/field.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/field.md","rawTitle":"

Annotating types for Field injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating types for Field injection","uid":"Tutorial.Annotation.Field","updated_at":"2019-03-06 03:02 AM","wordCount":63},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/annotation/method/index.html b/_site/tutorials/annotation/method/index.html new file mode 100644 index 0000000..a943eda --- /dev/null +++ b/_site/tutorials/annotation/method/index.html @@ -0,0 +1 @@ +{"content":"\n

Method invocation is an optional step you can add to the created object's initialization. Any accessible method could be invoked, provided Unity can satisfy all the parameters with appropriate values.

\n

Method Invocation

\n

To enable method invocation during object initialization you could apply InjectionMethod attribute to the method you want to be executed.

\n
public class Service\n{\n    ...\n    private void PreInitialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void Initialize(...)\n    {\n        ...\n    }\n\n    public void PostInitialize(...)\n    {\n        ...\n    }\n}\n
\n

In the example above, attribute InjectionMethod is applied to method Initialize(...) and the method will be executed immediately after the object is created.

\n

Multiple Method Invocation

\n

Unity does not place any restrictions on how many methods of the class will be invoked during the initialization. You could mark any and all methods with the attribute and Unity will execute them all:

\n
public class Service\n{\n    ...\n\n    [InjectionMethod]\n    public void PreInitialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void Initialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void PostInitialize(...)\n    {\n        ...\n    }\n}\n
\n

Restrictions

\n

Static methods cannot be invoked

\n

Unity does not support invocation of static methods. Static methods annotated with InjectionMethod attribute will be ignored. If Unity Diagnostic is enabled, the container will throw an exception when it encounters such an annotation.

\n

Methods with ref or out parameters cannot be invoked

\n

Methods containing ref or out parameters cannot be invoked during initialization. The container will throw an exception if encountered these.

\n
public class Service\n{\n    [InjectionMethod]  // Error\n    public void Method1(ref object refObject)\n    {\n        ...\n    }\n    ...\n\n    [InjectionMethod]  // Error\n    public void Method2(out object outObject)\n    {\n        ...\n    }\n}\n
\n

In the example above neither Method1(ref object refObject) nor Method2(out object outObject) should be annotated for invocation. Doing so will create an error condition.

\n

Invoking private and protected methods is not allowed

\n

Although it is technically possible to call private and protected methods of the class, Unity does not support this feature. This restriction is implemented to impose consistency with accessibility principles of C# language.

\n

Unity will ignore attributes on non-accessible methods.

\n
public class Service\n{\n    ...\n\n    [InjectionMethod]  // Error\n    protected void ProtectedMethod(...)\n    {\n        ...\n    }\n}\n
\n

In the example above method ProtectedMethod(...) will not be called.

\n

If Unity Diagnostic is enabled, the container will throw an exception when it encounters this condition.

\n

For more information see Unity Diagnostic.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/annotation/method/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/annotation/method/","conceptual":"\n

Method invocation is an optional step you can add to the created object's initialization. Any accessible method could be invoked, provided Unity can satisfy all the parameters with appropriate values.

\n

Method Invocation

\n

To enable method invocation during object initialization you could apply InjectionMethod attribute to the method you want to be executed.

\n
public class Service\n{\n    ...\n    private void PreInitialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void Initialize(...)\n    {\n        ...\n    }\n\n    public void PostInitialize(...)\n    {\n        ...\n    }\n}\n
\n

In the example above, attribute InjectionMethod is applied to method Initialize(...) and the method will be executed immediately after the object is created.

\n

Multiple Method Invocation

\n

Unity does not place any restrictions on how many methods of the class will be invoked during the initialization. You could mark any and all methods with the attribute and Unity will execute them all:

\n
public class Service\n{\n    ...\n\n    [InjectionMethod]\n    public void PreInitialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void Initialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void PostInitialize(...)\n    {\n        ...\n    }\n}\n
\n

Restrictions

\n

Static methods cannot be invoked

\n

Unity does not support invocation of static methods. Static methods annotated with InjectionMethod attribute will be ignored. If Unity Diagnostic is enabled, the container will throw an exception when it encounters such an annotation.

\n

Methods with ref or out parameters cannot be invoked

\n

Methods containing ref or out parameters cannot be invoked during initialization. The container will throw an exception if encountered these.

\n
public class Service\n{\n    [InjectionMethod]  // Error\n    public void Method1(ref object refObject)\n    {\n        ...\n    }\n    ...\n\n    [InjectionMethod]  // Error\n    public void Method2(out object outObject)\n    {\n        ...\n    }\n}\n
\n

In the example above neither Method1(ref object refObject) nor Method2(out object outObject) should be annotated for invocation. Doing so will create an error condition.

\n

Invoking private and protected methods is not allowed

\n

Although it is technically possible to call private and protected methods of the class, Unity does not support this feature. This restriction is implemented to impose consistency with accessibility principles of C# language.

\n

Unity will ignore attributes on non-accessible methods.

\n
public class Service\n{\n    ...\n\n    [InjectionMethod]  // Error\n    protected void ProtectedMethod(...)\n    {\n        ...\n    }\n}\n
\n

In the example above method ProtectedMethod(...) will not be called.

\n

If Unity Diagnostic is enabled, the container will throw an exception when it encounters this condition.

\n

For more information see Unity Diagnostic.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/method.md","depot_name":".","document_id":"5ae531df-dce4-5f36-9c71-e384a74e77dc","document_version_independent_id":"f8c80055-fe8e-50ca-9e17-07b04982b1ac","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Annotation/method.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/method.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/method.md","rawTitle":"

Annotating types for Method invocation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating types for Method invocation","uid":"Tutorial.Annotation.Method","updated_at":"2019-04-05 01:56 AM","wordCount":368},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/annotation/parameter/index.html b/_site/tutorials/annotation/parameter/index.html new file mode 100644 index 0000000..0c6c97a --- /dev/null +++ b/_site/tutorials/annotation/parameter/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/4/2019","updated_at_date_time":"2019-03-04T04:07:59Z"},"_path":"tutorials/annotation/parameter/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/annotation/parameter/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/parameter.md","depot_name":".","document_id":"f85b065f-2cd0-8da7-c090-a2590a7b6682","document_version_independent_id":"5d0e49be-3a43-6aaf-47d6-fb8c7fed5bc9","gitcommit":"https://github.com/unitycontainer/documentation/blob/3ce1397a639bc01a45da7e6143e5be8bb2e67818/tutorials/Annotation/parameter.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/parameter.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/parameter.md","rawTitle":"

Annotating Constructors and Methods for Parameter Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating Constructors and Methods for Parameter Injection","uid":"Tutorial.Annotation.Parameter","updated_at":"2019-03-04 04:07 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/annotation/property/index.html b/_site/tutorials/annotation/property/index.html new file mode 100644 index 0000000..de5eb9f --- /dev/null +++ b/_site/tutorials/annotation/property/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/16/2019","updated_at_date_time":"2019-03-16T20:42:53Z"},"_path":"tutorials/annotation/property/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/annotation/property/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/property.md","depot_name":".","document_id":"6814e60e-6ade-f695-88c6-035d214a78dd","document_version_independent_id":"fbdced5a-ca01-4bd7-b80b-69048ade93ef","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/tutorials/Annotation/property.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/property.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/property.md","rawTitle":"

Annotating Objects for Property Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Injection Annotation","uid":"Tutorial.Annotation.Property","updated_at":"2019-03-16 08:42 PM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/buildup/buildup/index.html b/_site/tutorials/composition/buildup/buildup/index.html new file mode 100644 index 0000000..bd286ce --- /dev/null +++ b/_site/tutorials/composition/buildup/buildup/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/buildup/buildup/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/buildup/buildup/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/BuildUp/buildup.md","depot_name":".","document_id":"ac5e69d2-90ac-2ebc-2061-3bd40761c5ed","document_version_independent_id":"8b0dbe0c-bfb5-b68b-f782-5702f0b90f85","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/BuildUp/buildup.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/BuildUp/buildup.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/BuildUp/buildup.md","rawTitle":"

Build Up

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Object Build Up","uid":"Tutorial.BuildUp","updated_at":"2019-04-30 12:00 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/collections/index.html b/_site/tutorials/composition/collections/index.html new file mode 100644 index 0000000..39c84e3 --- /dev/null +++ b/_site/tutorials/composition/collections/index.html @@ -0,0 +1 @@ +{"content":"\n

Unity supports creating multiple registration of the same type by adding a name to the registration. It is useful if you want to register different services of the same type. For example, if you have multiple printers and you want them all to be available to consumers you would register them like this:

\n
container.RegisterInstance<IPrinter>(printer); // default printer\ncontainer.RegisterInstance<IPrinter>(printer1,   "Office Printer");\ncontainer.RegisterInstance<IPrinter>(printer2,   "Printer at the deli on the street corner");\ncontainer.RegisterType<IPrinter, NeighborPrinter>("Office printer near me");\n
\n

When you want to obtain a list of all the registered objects of a specific type, IPrinter in this case, you can use the array T[] or IEnumerable<T> of that type. The difference between array and enumerable resolution is that array only returns named (nondefault name) registrations where enumerable always returns all, named and unnamed registrations.

\n

Resolving array T[]

\n

When resolving array of a type, Unity will return an array containing only types registered with nondefault (other than null) names. In example above call to Resolve will return array of only three elements:

\n
IPrinter[] printers = container.Resolve<IPrinter[]>();\nAssert(3 == printers.Length)\n
\n

Instance printer will not be returned because it was registered with no name.

\n

Resolving IEnumerable<T>

\n

IEnumerable<T> returns an enumerable containing all registrations of type T, including default (with name null) registrations. In example above it will return all four registrations:

\n
IPrinter[] printers = container.Resolve<IEnumerable<IPrinter>>();\nAssert(4 == printers.Count())\n
\n

Resolving List<T> of types

\n

Unity does not have any special provisions to support List<T> but because List type's longest exposed constructor is

\n
public List(IEnumerable<T> items)\n
\n

Unity is able to resolve List<T>. Consider this example:

\n
var printers = container.Resolve<List<IPrinter>>();\nAssert(4 == printers.Count)\n
\n

Unity creates type List<IPrinter> and during initialization selects longest constructor it can satisfy with dependencies (List(IEnumerable<T> items)). It crates the enumeration and passes it to List constructor. Resulting instance is a list of all registrations of that type.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/collections/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/composition/collections/","conceptual":"\n

Unity supports creating multiple registration of the same type by adding a name to the registration. It is useful if you want to register different services of the same type. For example, if you have multiple printers and you want them all to be available to consumers you would register them like this:

\n
container.RegisterInstance<IPrinter>(printer); // default printer\ncontainer.RegisterInstance<IPrinter>(printer1,   "Office Printer");\ncontainer.RegisterInstance<IPrinter>(printer2,   "Printer at the deli on the street corner");\ncontainer.RegisterType<IPrinter, NeighborPrinter>("Office printer near me");\n
\n

When you want to obtain a list of all the registered objects of a specific type, IPrinter in this case, you can use the array T[] or IEnumerable<T> of that type. The difference between array and enumerable resolution is that array only returns named (nondefault name) registrations where enumerable always returns all, named and unnamed registrations.

\n

Resolving array T[]

\n

When resolving array of a type, Unity will return an array containing only types registered with nondefault (other than null) names. In example above call to Resolve will return array of only three elements:

\n
IPrinter[] printers = container.Resolve<IPrinter[]>();\nAssert(3 == printers.Length)\n
\n

Instance printer will not be returned because it was registered with no name.

\n

Resolving IEnumerable<T>

\n

IEnumerable<T> returns an enumerable containing all registrations of type T, including default (with name null) registrations. In example above it will return all four registrations:

\n
IPrinter[] printers = container.Resolve<IEnumerable<IPrinter>>();\nAssert(4 == printers.Count())\n
\n

Resolving List<T> of types

\n

Unity does not have any special provisions to support List<T> but because List type's longest exposed constructor is

\n
public List(IEnumerable<T> items)\n
\n

Unity is able to resolve List<T>. Consider this example:

\n
var printers = container.Resolve<List<IPrinter>>();\nAssert(4 == printers.Count)\n
\n

Unity creates type List<IPrinter> and during initialization selects longest constructor it can satisfy with dependencies (List(IEnumerable<T> items)). It crates the enumeration and passes it to List constructor. Resulting instance is a list of all registrations of that type.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/collections.md","depot_name":".","document_id":"0884b99e-0a93-edc3-f12f-ad8b3a65a047","document_version_independent_id":"e03b645c-3edf-6832-3486-73089b8efedc","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/collections.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/collections.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/collections.md","rawTitle":"

Resolving collections of Objects of a Particular Type

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Collections","uid":"Tutorial.Collections","updated_at":"2019-04-30 12:00 AM","wordCount":300},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/composition/index.html b/_site/tutorials/composition/composition/index.html new file mode 100644 index 0000000..65cb02e --- /dev/null +++ b/_site/tutorials/composition/composition/index.html @@ -0,0 +1 @@ +{"content":"\n

Composition is a general term describing creation and initialization of an object. During composition an object is created and initialized with all of its dependencies and initialization methods.

\n

Since each dependency might have its own dependencies entire dependency graph has to be created and each node has to be initialized in order of priority.

\n

The Unity container supports two types of composition:

\n

Resolution

\n

Resolution is a process where an object is built from scratch. In other words, the container is allocating the memory for an object, calls a constructor with all of its dependencies and performs all necessary initialization required by the type. For more information see Object Resolution

\n

Building Up

\n

Building up is a process where the container does not create an object but initializes already created object. This is useful when an object is part of an infrastructure and author does not have access or control of how these are created.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"7/31/2019","updated_at_date_time":"2019-07-31T11:26:54Z"},"_path":"tutorials/composition/composition/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/composition/composition/","conceptual":"\n

Composition is a general term describing creation and initialization of an object. During composition an object is created and initialized with all of its dependencies and initialization methods.

\n

Since each dependency might have its own dependencies entire dependency graph has to be created and each node has to be initialized in order of priority.

\n

The Unity container supports two types of composition:

\n

Resolution

\n

Resolution is a process where an object is built from scratch. In other words, the container is allocating the memory for an object, calls a constructor with all of its dependencies and performs all necessary initialization required by the type. For more information see Object Resolution

\n

Building Up

\n

Building up is a process where the container does not create an object but initializes already created object. This is useful when an object is part of an infrastructure and author does not have access or control of how these are created.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/composition.md","depot_name":".","document_id":"1457e229-39bc-a777-76a7-92e4438da74e","document_version_independent_id":"31268c2a-a9a6-f73d-3573-58f93512e7b2","gitcommit":"https://github.com/unitycontainer/documentation/blob/2b566771060defc33c61a481b10ffc9c8786eba9/tutorials/Composition/composition.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/composition.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/composition.md","rawTitle":"

Composition

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Composition","uid":"Tutorial.Composition","updated_at":"2019-07-31 11:26 AM","wordCount":153},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/generics/deferred/index.html b/_site/tutorials/composition/generics/deferred/index.html new file mode 100644 index 0000000..6c4ec53 --- /dev/null +++ b/_site/tutorials/composition/generics/deferred/index.html @@ -0,0 +1 @@ +{"content":"\n

Unity provides a technique to facilitate holding a reference to an object you need, but do not want to construct right away. You wish to defer resolution of the object. Instead of creating a factory for the type and injecting the factory into your class, then using it to create the type you want you can use the .NET standard type Func (C#) or Func(Of T) (Visual Basic) with the Resolve method. This returns a delegate that, when invoked, calls into the container and returns an instance of the specified type (in this case, T).

\n

You can even create a delegate in this way without creating a registration or mapping for the specified type in the container if you wish. Because the resolve action only takes place when you invoke the delegate, subsequent registrations added to the container are available when the target object is resolved. This means that you can manipulate the registrations and mappings in the container at any point before you resolve the target object (although you can obviously register the type before you create the delegate if you prefer).

\n

For example, you can create a delegate for a component named MyClass, and then register a mapping for it and perform deferred resolution when required using the following code.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create a delegate for the IMyClass interface type\nvar resolver = myContainer.Resolve<Func<IMyClass>>();\n\n// ... other code here...\n\n// Register a mapping for the IMyClass interface to the MyClass type\nmyContainer.RegisterType<IMyClass, MyClass>();\n\n// Resolve the mapped target object\nIMyClass myClassInstance = resolver();\n
\n

You can use this approach when you resolve the type using the Resolve method, or you can specify the delegate when you configure constructor, property setter, or method call injection. You can also use named (non-default) registrations by including the registration name in the call to the Resolve method and the RegisterType method, just as you would when using these methods for non-deferred resolution.

\n

In addition, you can use this feature to perform deferred resolution of multiple named registrations, as an alternative to using the ResolveAll method. For example, if you have multiple named registrations for the IMyClass interface to suitable concrete types, you can obtain a collection of the resolved types. The following code illustrates this.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create an IEnumerable resolver for the IMyClass interface type\nvar resolver = myContainer.Resolve<Func<IEnumerable<IMyClass>>>();\n\n// ... other code here...\n\n// Register mappings for the IMyClass interface to appropriate concrete types\nmyContainer.RegisterType<IMyClass, FirstClass>("First");\nmyContainer.RegisterType<IMyClass, SecondClass>("Second");\nmyContainer.RegisterType<IMyClass, ThidClass>("Third");\n\n// Resolve a collection of the mapped target objects\nIEnumerable<IMyClass> myClassInstances = resolver();\n
\n

You can also use the deferred resolver to resolve instance registrations. For example, the following code shows how you can resolve an IEnumerable collection of string values.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create an IEnumerable resolver for string instance registrations\nvar resolver = myContainer.Resolve<Func<IEnumerable<string>>>();\n\n// ... other code here...\n\n// Register mappings for the IMyClass interface to appropriate concrete types\nmyContainer.RegisterInstance("one", "FirstString");\nmyContainer.RegisterInstance("two", "SecondString");\nmyContainer.RegisterInstance("three", "ThirdString");\n\n// Resolve a collection of the strings\nIEnumerable<string> myStringInstances = resolver();\n
\n
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/generics/deferred/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/generics/deferred/","conceptual":"\n

Unity provides a technique to facilitate holding a reference to an object you need, but do not want to construct right away. You wish to defer resolution of the object. Instead of creating a factory for the type and injecting the factory into your class, then using it to create the type you want you can use the .NET standard type Func (C#) or Func(Of T) (Visual Basic) with the Resolve method. This returns a delegate that, when invoked, calls into the container and returns an instance of the specified type (in this case, T).

\n

You can even create a delegate in this way without creating a registration or mapping for the specified type in the container if you wish. Because the resolve action only takes place when you invoke the delegate, subsequent registrations added to the container are available when the target object is resolved. This means that you can manipulate the registrations and mappings in the container at any point before you resolve the target object (although you can obviously register the type before you create the delegate if you prefer).

\n

For example, you can create a delegate for a component named MyClass, and then register a mapping for it and perform deferred resolution when required using the following code.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create a delegate for the IMyClass interface type\nvar resolver = myContainer.Resolve<Func<IMyClass>>();\n\n// ... other code here...\n\n// Register a mapping for the IMyClass interface to the MyClass type\nmyContainer.RegisterType<IMyClass, MyClass>();\n\n// Resolve the mapped target object\nIMyClass myClassInstance = resolver();\n
\n

You can use this approach when you resolve the type using the Resolve method, or you can specify the delegate when you configure constructor, property setter, or method call injection. You can also use named (non-default) registrations by including the registration name in the call to the Resolve method and the RegisterType method, just as you would when using these methods for non-deferred resolution.

\n

In addition, you can use this feature to perform deferred resolution of multiple named registrations, as an alternative to using the ResolveAll method. For example, if you have multiple named registrations for the IMyClass interface to suitable concrete types, you can obtain a collection of the resolved types. The following code illustrates this.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create an IEnumerable resolver for the IMyClass interface type\nvar resolver = myContainer.Resolve<Func<IEnumerable<IMyClass>>>();\n\n// ... other code here...\n\n// Register mappings for the IMyClass interface to appropriate concrete types\nmyContainer.RegisterType<IMyClass, FirstClass>("First");\nmyContainer.RegisterType<IMyClass, SecondClass>("Second");\nmyContainer.RegisterType<IMyClass, ThidClass>("Third");\n\n// Resolve a collection of the mapped target objects\nIEnumerable<IMyClass> myClassInstances = resolver();\n
\n

You can also use the deferred resolver to resolve instance registrations. For example, the following code shows how you can resolve an IEnumerable collection of string values.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create an IEnumerable resolver for string instance registrations\nvar resolver = myContainer.Resolve<Func<IEnumerable<string>>>();\n\n// ... other code here...\n\n// Register mappings for the IMyClass interface to appropriate concrete types\nmyContainer.RegisterInstance("one", "FirstString");\nmyContainer.RegisterInstance("two", "SecondString");\nmyContainer.RegisterInstance("three", "ThirdString");\n\n// Resolve a collection of the strings\nIEnumerable<string> myStringInstances = resolver();\n
\n
","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/deferred.md","depot_name":".","document_id":"a1f92544-a7e3-3af7-c90f-d602719ebcfa","document_version_independent_id":"ec0143ad-09ff-c2bb-f179-d04c151dfa62","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Generics/deferred.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/deferred.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/deferred.md","rawTitle":"

Deferring the Resolution of Objects

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Deferred Resolution","uid":"Tutorial.Deferred","updated_at":"2019-04-30 12:00 AM","wordCount":520},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/generics/generics/index.html b/_site/tutorials/composition/generics/generics/index.html new file mode 100644 index 0000000..8e5df8f --- /dev/null +++ b/_site/tutorials/composition/generics/generics/index.html @@ -0,0 +1 @@ +{"content":"\n

You resolve generic types in much the same way as you resolve non-generic types. The primary difference is with unbound types. The specification of the type arguments depend on the definition of the mapped type or the type you are resolving:

\n
    \n
  • If the mapped type or the type you are resolving is a bound type, you can only resolve an instance of the type using the defined type arguments. For example, if the mapped type has type arguments of type string and DateTime, you must specify these in the call to the Resolve method.

    \n
  • \n
  • If the mapped type or the type you are resolving is an unbound type, you can resolve an instance of the type using any types for the type arguments. The target class must be able to process arguments of the type you specify. For example, if one of the type arguments you specify is the type Boolean, the class must be able to handle Boolean values for that argument and not attempt to parse the value into a DateTime instance.

    \n
  • \n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/generics/generics/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/generics/generics/","conceptual":"\n

You resolve generic types in much the same way as you resolve non-generic types. The primary difference is with unbound types. The specification of the type arguments depend on the definition of the mapped type or the type you are resolving:

\n
    \n
  • If the mapped type or the type you are resolving is a bound type, you can only resolve an instance of the type using the defined type arguments. For example, if the mapped type has type arguments of type string and DateTime, you must specify these in the call to the Resolve method.

    \n
  • \n
  • If the mapped type or the type you are resolving is an unbound type, you can resolve an instance of the type using any types for the type arguments. The target class must be able to process arguments of the type you specify. For example, if one of the type arguments you specify is the type Boolean, the class must be able to handle Boolean values for that argument and not attempt to parse the value into a DateTime instance.

    \n
  • \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/generics.md","depot_name":".","document_id":"a92a9f46-f50f-2f68-4bb8-5e7652680910","document_version_independent_id":"4e0f56a0-6763-4bbf-372b-b019b3d8caa4","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Generics/generics.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/generics.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/generics.md","rawTitle":"

Generic Types

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Generics","uid":"Tutorial.Generics","updated_at":"2019-04-30 12:00 AM","wordCount":174},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/generics/lazy/index.html b/_site/tutorials/composition/generics/lazy/index.html new file mode 100644 index 0000000..2d0e44b --- /dev/null +++ b/_site/tutorials/composition/generics/lazy/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T01:18:55Z"},"_path":"tutorials/composition/generics/lazy/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/generics/lazy/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/lazy.md","depot_name":".","document_id":"9b5a7104-d6da-4330-733e-273254cf63cf","document_version_independent_id":"4188df6c-93dd-f51a-63be-280e09e8beda","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Generics/lazy.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/lazy.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/lazy.md","rawTitle":"

Lazy

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Lazy","uid":"Tutorial.Lazy","updated_at":"2019-04-30 01:18 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/generics/metadata/index.html b/_site/tutorials/composition/generics/metadata/index.html new file mode 100644 index 0000000..7ca3f25 --- /dev/null +++ b/_site/tutorials/composition/generics/metadata/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/generics/metadata/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/generics/metadata/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/metadata.md","depot_name":".","document_id":"ac43e2ab-6d9a-2ed0-8c89-80b21278762e","document_version_independent_id":"f5d1d529-9ad8-fb0c-2f65-e9f4c3c42474","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Generics/metadata.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/metadata.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/metadata.md","rawTitle":"

Generic Metadata

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Metadata","uid":"Tutorial.Generics.Metadata","updated_at":"2019-04-30 12:00 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/mapping/generic/index.html b/_site/tutorials/composition/mapping/generic/index.html new file mode 100644 index 0000000..95fbf44 --- /dev/null +++ b/_site/tutorials/composition/mapping/generic/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T01:18:55Z"},"_path":"tutorials/composition/mapping/generic/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/mapping/generic/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/generic.md","depot_name":".","document_id":"418b01e6-2886-a05c-94d3-2695d8234782","document_version_independent_id":"c730bf6f-c479-0b44-0b51-e7754d3759c9","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Mapping/generic.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/generic.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Mapping/generic.md","rawTitle":"

Generic Type Mapping

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Generic Type Mapping","uid":"Tutorial.Mapping.Generic","updated_at":"2019-04-30 01:18 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/mapping/implementation/index.html b/_site/tutorials/composition/mapping/implementation/index.html new file mode 100644 index 0000000..2003e16 --- /dev/null +++ b/_site/tutorials/composition/mapping/implementation/index.html @@ -0,0 +1 @@ +{"content":"\n

Service to Implementation mapping is done during the service registration.

\n

The Service Itself

\n

The simplest type of registration is when service is registered by its own type. For Type and Instance registration you could do so by simply registering the type or the instance:

\n
container.RegisterType<Foo>();\ncontainer.RegisterInstance(new Foo());\n
\n

A factory has to specify type it is registered under:

\n
container.RegisterFactory<Foo>((c, t, n) => new Foo());\n
\n

Mapping Contract to Implementation

\n

When you map Registered type to implementation type you specify an service type first and implementation type second:

\n
container.RegisterType<IFoo, Foo>();\ncontainer.RegisterInstance<IFoo>(new Foo());\n
\n

In case of factory registration the container does not care how it is implemented by the factory, all it cares is how it is registered:

\n
container.RegisterFactory<IFoo>((c, t, n) => new Foo());\n
\n

Building and Mapping to Implementation

\n

Mapping allows redirection to existing registrations and services as well as building new instances of implementation types.

\n

Mapping to Existing Service

\n

The Unity container supports a scenario where a mapping does not crate type itself but rather references existing service registered with the container. Consider the following:

\n
public class Foo : IFoo1, IFoo2\n{\n    public Foo()\n    {\n    }\n\n    public Foo(object _)\n    {\n    }\n}\n\ncontainer.RegisterInstance<IFoo>(new Foo(), InstanceLifetime.Singleton);\n\ncontainer.RegisterType<IFoo1, Foo>();\n
\n

The container has a registration for type Foo. When interface IFoo1 is mapped to Foo it instructs the container to resolve the default implementation for the type Foo. Because the mapping does not provide any instructions how the type should be built, the default implementation, or existing registration should be used.

\n

So, when the container will be resolving IFoo1 it will first check if Foo is already registered and will used the registration to satisfy the request.

\n

If a mapping references non existing service the container will try to build the service from the implementation type.

\n

Building Implementation Type

\n

If the implementation type points to no existing registration or if an instance has to be created using certain rules, the container will create a new, independent pipeline and execute. So if you register IFoo2 like this:

\n
container.RegisterType<IFoo2, Foo>(Invoke.Constructor());\n
\n

the Unity container will not redirect to Foo but will create a new instance of Foo and call default constructor.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T01:18:55Z"},"_path":"tutorials/composition/mapping/implementation/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/mapping/implementation/","conceptual":"\n

Service to Implementation mapping is done during the service registration.

\n

The Service Itself

\n

The simplest type of registration is when service is registered by its own type. For Type and Instance registration you could do so by simply registering the type or the instance:

\n
container.RegisterType<Foo>();\ncontainer.RegisterInstance(new Foo());\n
\n

A factory has to specify type it is registered under:

\n
container.RegisterFactory<Foo>((c, t, n) => new Foo());\n
\n

Mapping Contract to Implementation

\n

When you map Registered type to implementation type you specify an service type first and implementation type second:

\n
container.RegisterType<IFoo, Foo>();\ncontainer.RegisterInstance<IFoo>(new Foo());\n
\n

In case of factory registration the container does not care how it is implemented by the factory, all it cares is how it is registered:

\n
container.RegisterFactory<IFoo>((c, t, n) => new Foo());\n
\n

Building and Mapping to Implementation

\n

Mapping allows redirection to existing registrations and services as well as building new instances of implementation types.

\n

Mapping to Existing Service

\n

The Unity container supports a scenario where a mapping does not crate type itself but rather references existing service registered with the container. Consider the following:

\n
public class Foo : IFoo1, IFoo2\n{\n    public Foo()\n    {\n    }\n\n    public Foo(object _)\n    {\n    }\n}\n\ncontainer.RegisterInstance<IFoo>(new Foo(), InstanceLifetime.Singleton);\n\ncontainer.RegisterType<IFoo1, Foo>();\n
\n

The container has a registration for type Foo. When interface IFoo1 is mapped to Foo it instructs the container to resolve the default implementation for the type Foo. Because the mapping does not provide any instructions how the type should be built, the default implementation, or existing registration should be used.

\n

So, when the container will be resolving IFoo1 it will first check if Foo is already registered and will used the registration to satisfy the request.

\n

If a mapping references non existing service the container will try to build the service from the implementation type.

\n

Building Implementation Type

\n

If the implementation type points to no existing registration or if an instance has to be created using certain rules, the container will create a new, independent pipeline and execute. So if you register IFoo2 like this:

\n
container.RegisterType<IFoo2, Foo>(Invoke.Constructor());\n
\n

the Unity container will not redirect to Foo but will create a new instance of Foo and call default constructor.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/implementation.md","depot_name":".","document_id":"67e38e86-49da-e80c-aa14-d18939f99491","document_version_independent_id":"6916f8de-fba9-4c35-b3b8-6cc40a8e8412","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Mapping/implementation.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/implementation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Mapping/implementation.md","rawTitle":"

Service to Implementation Mapping

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Service to Implementation Mapping","uid":"Tutorial.Mapping.Implementation","updated_at":"2019-04-30 01:18 AM","wordCount":351},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/mapping/mapping/index.html b/_site/tutorials/composition/mapping/mapping/index.html new file mode 100644 index 0000000..e1afed7 --- /dev/null +++ b/_site/tutorials/composition/mapping/mapping/index.html @@ -0,0 +1 @@ +{"content":"\n

In service oriented architecture components expose services through well known contracts. In C# terms the contracts are the abstract classes or interfaces these components and services are exposing. So when we say service type, in most of the cases, we mean the interfaces implementing the contract. And the components are called Implementation types.

\n

Unity allows to publish these components and make all the contracts they implement available to clients to consume. This publishing and "advertisement" is done by registering types and interfaces (contracts) associated with components.

\n

Registration Type

\n

Registration type is the type of the 'Contract' this service provides. It could be the Type of the service itself of any of the base types it implements.

\n

Service To Implementation Mapping

\n

The mapping is done when service is registered. Any type of registration (Type, Factory, Instance) allow to associate a service with different contracts.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T01:18:55Z"},"_path":"tutorials/composition/mapping/mapping/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/mapping/mapping/","conceptual":"\n

In service oriented architecture components expose services through well known contracts. In C# terms the contracts are the abstract classes or interfaces these components and services are exposing. So when we say service type, in most of the cases, we mean the interfaces implementing the contract. And the components are called Implementation types.

\n

Unity allows to publish these components and make all the contracts they implement available to clients to consume. This publishing and "advertisement" is done by registering types and interfaces (contracts) associated with components.

\n

Registration Type

\n

Registration type is the type of the 'Contract' this service provides. It could be the Type of the service itself of any of the base types it implements.

\n

Service To Implementation Mapping

\n

The mapping is done when service is registered. Any type of registration (Type, Factory, Instance) allow to associate a service with different contracts.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/mapping.md","depot_name":".","document_id":"114f92db-344c-abca-7962-b9478c9610ee","document_version_independent_id":"ad129655-e31c-3d02-6062-cb5934ae425f","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Mapping/mapping.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/mapping.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Mapping/mapping.md","rawTitle":"

Type Mapping

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Type Mapping","uid":"Tutorial.Mapping","updated_at":"2019-04-30 01:18 AM","wordCount":143},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/overrides/dependency/index.html b/_site/tutorials/composition/overrides/dependency/index.html new file mode 100644 index 0000000..84cee96 --- /dev/null +++ b/_site/tutorials/composition/overrides/dependency/index.html @@ -0,0 +1 @@ +{"content":"\n

Dependency override is a special kind of override. It does not target any members or parameters. Instead, it overrides a contract that the container would have resolved when requested. In other words, when the dependency is being resolved from the container, if the contract matches, it will provide that value instead.

\n

Injected Members and Dependency overrides

\n

There are two types of dependency injection the Unity container supports:

\n
    \n
  • Value injection
  • \n
  • Value resolution
  • \n
\n

To understand how Dependency Override works you need to remember, it only overrides resolved values.

\n

Injected Values

\n

Values are injected during Type registration. At that time you provide instructions on how to initialize the Type and its members. The members injected with values via Injection Members will not be affected by the Dependency Override.

\n

Resolved Values

\n

All the dependencies that are not injected with values, or injected with resolve redirection are potential targets for the override. Anything that asks the container to resolve a value can be Dependency Overridden.

\n

Overriding dependencies

\n

Dependency Override enables you to specify an override for the specified dependency type contract. It, enables you to pass in an object that will be returned as a dependency, instead of the one resolved from the container.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/overrides/dependency/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/overrides/dependency/","conceptual":"\n

Dependency override is a special kind of override. It does not target any members or parameters. Instead, it overrides a contract that the container would have resolved when requested. In other words, when the dependency is being resolved from the container, if the contract matches, it will provide that value instead.

\n

Injected Members and Dependency overrides

\n

There are two types of dependency injection the Unity container supports:

\n
    \n
  • Value injection
  • \n
  • Value resolution
  • \n
\n

To understand how Dependency Override works you need to remember, it only overrides resolved values.

\n

Injected Values

\n

Values are injected during Type registration. At that time you provide instructions on how to initialize the Type and its members. The members injected with values via Injection Members will not be affected by the Dependency Override.

\n

Resolved Values

\n

All the dependencies that are not injected with values, or injected with resolve redirection are potential targets for the override. Anything that asks the container to resolve a value can be Dependency Overridden.

\n

Overriding dependencies

\n

Dependency Override enables you to specify an override for the specified dependency type contract. It, enables you to pass in an object that will be returned as a dependency, instead of the one resolved from the container.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/dependency.md","depot_name":".","document_id":"a57a3be5-47d3-51c5-f36f-7bb1a351d43f","document_version_independent_id":"7e8b2795-7571-1855-6237-b30f66013643","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/dependency.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/dependency.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/dependency.md","rawTitle":"

Dependency Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Dependency Override","uid":"Tutorial.Resolution.Override.Dependency","updated_at":"2019-04-30 12:00 AM","wordCount":199},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/overrides/field/index.html b/_site/tutorials/composition/overrides/field/index.html new file mode 100644 index 0000000..157e867 --- /dev/null +++ b/_site/tutorials/composition/overrides/field/index.html @@ -0,0 +1 @@ +{"content":"\n

FieldOverride enables you to override the value for a specified field. Only the field value is overridden, not the properties selected. Its behavior is the same as ParameterOverride. The use of the OnType method enables you to specify a type to constrain the override to.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/overrides/field/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/overrides/field/","conceptual":"\n

FieldOverride enables you to override the value for a specified field. Only the field value is overridden, not the properties selected. Its behavior is the same as ParameterOverride. The use of the OnType method enables you to specify a type to constrain the override to.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/field.md","depot_name":".","document_id":"7054362e-ab65-8ef6-cce1-7a89caee8ea0","document_version_independent_id":"f4d61c91-c65f-610e-5706-372bc1405786","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/field.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/field.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/field.md","rawTitle":"

Field Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Field Overrides","uid":"Tutorial.Resolution.Override.Field","updated_at":"2019-04-30 12:00 AM","wordCount":45},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/overrides/override/index.html b/_site/tutorials/composition/overrides/override/index.html new file mode 100644 index 0000000..12a3ba3 --- /dev/null +++ b/_site/tutorials/composition/overrides/override/index.html @@ -0,0 +1 @@ +{"content":"\n

The parameter and dependency overrides, ParameterOverride and DependencyOverride, are ResolverOverride implementations that provide support for overriding the registration information for resolving instances of types. When you call the Resolve method, these classes enable you to override values specified when the type was registered, such as by a RegisterType or RegisterInstance statement. In effect, RegisterType supplied values are overridden by Resolve supplied values.

\n

Use ParameterOverride to override the specified constructor parameter or parameters. The override applies everywhere the parameter appears unless you use OnType to constrain the override to a specified type. Since the purpose of overrides is to affect the resolution of dependencies for all relevant created objects, not just the object requested in the call to Resolve, unconstrained overrides can produce errors if there are unconstrained ParameterOverride parameters that match parameters with the same name but different types on the selected constructors for objects created in a given resolve operation.

\n

Use PropertyOverride to override the value of the specified property or properties. The override applies everywhere the property appears unless you use OnType to constrain the override to a specified type.

\n

Use DependencyOverride to override the value injected whenever there is a dependency of the given type. DependencyOverride overrides all instances where the type matches. Both parameter overrides and dependency overrides support generic types and multiple overrides.

\n

Overrides work with the constructor that is selected for the type, by attribute or configuration. If the constructor to be used is not identified with an attribute or explicit container configuration, then the default behavior is that the constructor with the most parameters will be used.

\n

A parameter and property override never affects what element gets selected. They only control the value of the specified parameter or property. You do not change which constructor is called with an override, and you do not change which properties get set with an override.

\n\n

\"Resolver

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/overrides/override/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/overrides/override/","conceptual":"\n

The parameter and dependency overrides, ParameterOverride and DependencyOverride, are ResolverOverride implementations that provide support for overriding the registration information for resolving instances of types. When you call the Resolve method, these classes enable you to override values specified when the type was registered, such as by a RegisterType or RegisterInstance statement. In effect, RegisterType supplied values are overridden by Resolve supplied values.

\n

Use ParameterOverride to override the specified constructor parameter or parameters. The override applies everywhere the parameter appears unless you use OnType to constrain the override to a specified type. Since the purpose of overrides is to affect the resolution of dependencies for all relevant created objects, not just the object requested in the call to Resolve, unconstrained overrides can produce errors if there are unconstrained ParameterOverride parameters that match parameters with the same name but different types on the selected constructors for objects created in a given resolve operation.

\n

Use PropertyOverride to override the value of the specified property or properties. The override applies everywhere the property appears unless you use OnType to constrain the override to a specified type.

\n

Use DependencyOverride to override the value injected whenever there is a dependency of the given type. DependencyOverride overrides all instances where the type matches. Both parameter overrides and dependency overrides support generic types and multiple overrides.

\n

Overrides work with the constructor that is selected for the type, by attribute or configuration. If the constructor to be used is not identified with an attribute or explicit container configuration, then the default behavior is that the constructor with the most parameters will be used.

\n

A parameter and property override never affects what element gets selected. They only control the value of the specified parameter or property. You do not change which constructor is called with an override, and you do not change which properties get set with an override.

\n\n

\"Resolver

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/override.md","depot_name":".","document_id":"c6321cd0-ca7d-d962-a1d6-cafd2304b46d","document_version_independent_id":"d81b6079-c1d9-1fb6-de0e-275b2b70cf4a","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/override.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/override.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/override.md","rawTitle":"

Overriding dependencies during resolution

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Resolution Override","uid":"Tutorial.Resolution.Override","updated_at":"2019-04-30 12:00 AM","wordCount":317},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/overrides/parameter/index.html b/_site/tutorials/composition/overrides/parameter/index.html new file mode 100644 index 0000000..e54ff40 --- /dev/null +++ b/_site/tutorials/composition/overrides/parameter/index.html @@ -0,0 +1 @@ +{"content":"\n

Unity enables you to pass in values for parameter dependencies to override a parameter passed to a given constructor or method. Only the parameter value is overridden, not the constructor or method selection.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/overrides/parameter/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/overrides/parameter/","conceptual":"\n

Unity enables you to pass in values for parameter dependencies to override a parameter passed to a given constructor or method. Only the parameter value is overridden, not the constructor or method selection.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/parameter.md","depot_name":".","document_id":"ba453611-c12b-550a-6561-07b81942e916","document_version_independent_id":"8aeb5e95-0a66-e52d-6553-af3a0ae20166","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/parameter.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/parameter.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/parameter.md","rawTitle":"

Parameter Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Parameter Override","uid":"Tutorial.Resolution.Override.Parameter","updated_at":"2019-04-30 12:00 AM","wordCount":33},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/overrides/property/index.html b/_site/tutorials/composition/overrides/property/index.html new file mode 100644 index 0000000..0f0bebd --- /dev/null +++ b/_site/tutorials/composition/overrides/property/index.html @@ -0,0 +1 @@ +{"content":"\n

PropertyOverride enables you to override the value for a specified property. Only the property value is overridden, not the properties selected. Its behavior is the same as ParameterOverride. The use of the OnType method enables you to specify a type to constrain the override to.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/overrides/property/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/overrides/property/","conceptual":"\n

PropertyOverride enables you to override the value for a specified property. Only the property value is overridden, not the properties selected. Its behavior is the same as ParameterOverride. The use of the OnType method enables you to specify a type to constrain the override to.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/property.md","depot_name":".","document_id":"9bee940d-3cf7-23a1-fc98-ed62d6797ee2","document_version_independent_id":"a616e5e2-d7c1-7f70-d255-96f921f486df","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/property.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/property.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/property.md","rawTitle":"

Property Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Override","uid":"Tutorial.Resolution.Override.Property","updated_at":"2019-04-30 12:00 AM","wordCount":45},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/resolution/resolution/index.html b/_site/tutorials/composition/resolution/resolution/index.html new file mode 100644 index 0000000..9761af5 --- /dev/null +++ b/_site/tutorials/composition/resolution/resolution/index.html @@ -0,0 +1 @@ +{"content":"\n

There are types you can create immediately from the container and there are types that require registration. Generally any primitive type would require registration and all classes are available immediately.

\n

You can use the Unity container to generate instances of any object that has a public constructor (in other words, objects that you can create using the new operator). When you call the Resolve method and specify the type that is not registered, the container simply generates and returns an instance of that type. However, the only time that this is realistically practical is when the object you are generating does not have ambiguities Unity could not resolve or contains dependency attributes that the container will use to inject dependent objects into the requested object.

\n

The Unity container identifies type registrations and type mappings in the container using a type and, optionally, a name. The type is an interface or a class (usually an interface or base class) that the desired concrete object type implements or inherits. This identifies the mapping so that the container can retrieve the correct object type in response to a call to the Resolve method. Where there is more than one mapping for the same type, the optional name differentiates these mappings and allows code to specify which of the mappings for that type to use.

\n

The provision of both generic and non-generic overloads of many of the Unity container methods ensures that Unity can be used in languages that do not support generics. You can use either approach (the generic or the non-generic overloads) in your code and mix them as required.

\n

The following topics describe how you can resolve objects using the Resolve or BuildUp methods:

\n\n

For more information about how you can configure Unity with type registrations and mappings, see Registration.

\n

For more information about how you can perform dependency injection on existing object instances, see Using BuildUp to Wire Up Objects Not Created by the Container.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/resolution/resolution/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/resolution/resolution/","conceptual":"\n

There are types you can create immediately from the container and there are types that require registration. Generally any primitive type would require registration and all classes are available immediately.

\n

You can use the Unity container to generate instances of any object that has a public constructor (in other words, objects that you can create using the new operator). When you call the Resolve method and specify the type that is not registered, the container simply generates and returns an instance of that type. However, the only time that this is realistically practical is when the object you are generating does not have ambiguities Unity could not resolve or contains dependency attributes that the container will use to inject dependent objects into the requested object.

\n

The Unity container identifies type registrations and type mappings in the container using a type and, optionally, a name. The type is an interface or a class (usually an interface or base class) that the desired concrete object type implements or inherits. This identifies the mapping so that the container can retrieve the correct object type in response to a call to the Resolve method. Where there is more than one mapping for the same type, the optional name differentiates these mappings and allows code to specify which of the mappings for that type to use.

\n

The provision of both generic and non-generic overloads of many of the Unity container methods ensures that Unity can be used in languages that do not support generics. You can use either approach (the generic or the non-generic overloads) in your code and mix them as required.

\n

The following topics describe how you can resolve objects using the Resolve or BuildUp methods:

\n\n

For more information about how you can configure Unity with type registrations and mappings, see Registration.

\n

For more information about how you can perform dependency injection on existing object instances, see Using BuildUp to Wire Up Objects Not Created by the Container.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/resolution.md","depot_name":".","document_id":"1dde0392-5274-483b-f246-6a10afef0c27","document_version_independent_id":"09d0cec4-ec13-4b5a-a4d6-a94c867fe156","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Resolution/resolution.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/resolution.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Resolution/resolution.md","rawTitle":"

Resolving Objects

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Object Resolution","uid":"Tutorial.Resolution","updated_at":"2019-04-30 12:00 AM","wordCount":347},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/resolution/type/index.html b/_site/tutorials/composition/resolution/type/index.html new file mode 100644 index 0000000..c095207 --- /dev/null +++ b/_site/tutorials/composition/resolution/type/index.html @@ -0,0 +1 @@ +{"content":"\n

Unity provides a method named Resolve that you can use to resolve an object by type, and optionally by providing a registration name. Registrations that do not specify a name are referred to as default registrations. This topic describes how to use the Resolve method to resolve types and mappings registered as default registrations.

\n

The Resolve Method Overloads for Default Registrations

\n

The following table describes the overloads of the Resolve method that return instances of objects based on the default registrations and mappings with the container. The API for the Unity container contains both generic and non-generic overloads of this method so that you can use it with languages that do not support the generics syntax.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MethodDescription
Resolve<T>()Returns an instance of the type registered with the default name as the type T.
Resolve(Type t)Returns an instance of the default type registered with the container as the type t.
Resolve<T>(string name)Returns an instance of the type registered with the container as the type T and with the specified name. Names are case sensitive.
Resolve(Type t, string name)Returns an instance of the type registered with the container as the type t and with the specified name. Names are case sensitive.
\n

Using the Resolve Method with Default Registrations

\n

The following examples show how you can use the Resolve method to create or obtain a reference to an object defined in the container configuration. Typically you will register a type mapping between an interface and a concrete type that implements it, or between a base class and a concrete type that inherits it. The examples use the run-time methods of the container to register the types it will resolve.

\n

Resolving Types Registered as Interfaces

\n

The following code registers a mapping for an interface named IService and specifies that the container should return an instance of the CustomerService class (which implements the IService interface). In this case, the type IService identifies the registration type. Code that requests an instance of the type IService receives an instance of the CustomerService class. The following example uses the generic overloads of the container methods.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\n\nvar instance = container.Resolve<IService>();\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\n\nvar instance = (IService)container.Resolve(typeof(IMyService));\n
\n

Resolving Types Registered as Base Classes

\n

When you need to register a mapping for a base class or other object type (instead of an interface), you use the overloads of the RegisterType and Resolve methods that accept object type names. The following examples show the use of the overloads of the RegisterType and Resolve methods that accept object type names as the registration identifier.

\n

The following code registers a mapping for an object named MyBaseService and specifies that the container should return an instance of the CustomerService class (which inherits from the MyBaseService class). In this case, the type MyBaseService identifies the registration. Code that requests an instance of the type MyBaseService receives an instance of the CustomerService class.

\n
IUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<MyBaseService, CustomerService>();\n\nMyBaseService myServiceInstance = myContainer.Resolve<MyBaseService>();\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType(typeof(MyBaseService), typeof(CustomerService));\n\nMyBaseService myServiceInstance = (MyBaseService)myContainer.Resolve(typeof(MyBaseService));\n
\n

Using the Resolve Method with Named Registrations

\n

If you need to create multiple registrations for the same type, you can specify a name to differentiate each registration. Then, to retrieve an object of the appropriate type, you specify the name and the registered type. Following examples demonstrate the technique:

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\ncontainer.RegisterType<IService, CompanyService>("name");\ncontainer.RegisterType<IService, ExternalService>("other name");\n\nvar instance = container.Resolve<IService>("name");\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, EmailService>();\ncontainer.RegisterType<IService, LDAPService>("name");\ncontainer.RegisterType<IService, CustomerService>("other name");\n\nvar instance = (IService)container.Resolve(typeof(IMyService), "other name");\n
\n

Note

\n

If the target class or object specifies any dependencies of its own, using constructor, property, or method call injection attributes, the instance returned will have these dependent objects injected automatically.

\n

By default, the RegisterType method registers a type with a transient lifetime, which means that the container will not hold onto a reference to the objects it creates when you call the Resolve method. Each time you call one of these methods, the container generates a new instance of the specified or mapped type. However, you can use lifetime managers to control the creation, lifetime, and disposal of objects if required.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/resolution/type/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/resolution/type/","conceptual":"\n

Unity provides a method named Resolve that you can use to resolve an object by type, and optionally by providing a registration name. Registrations that do not specify a name are referred to as default registrations. This topic describes how to use the Resolve method to resolve types and mappings registered as default registrations.

\n

The Resolve Method Overloads for Default Registrations

\n

The following table describes the overloads of the Resolve method that return instances of objects based on the default registrations and mappings with the container. The API for the Unity container contains both generic and non-generic overloads of this method so that you can use it with languages that do not support the generics syntax.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MethodDescription
Resolve<T>()Returns an instance of the type registered with the default name as the type T.
Resolve(Type t)Returns an instance of the default type registered with the container as the type t.
Resolve<T>(string name)Returns an instance of the type registered with the container as the type T and with the specified name. Names are case sensitive.
Resolve(Type t, string name)Returns an instance of the type registered with the container as the type t and with the specified name. Names are case sensitive.
\n

Using the Resolve Method with Default Registrations

\n

The following examples show how you can use the Resolve method to create or obtain a reference to an object defined in the container configuration. Typically you will register a type mapping between an interface and a concrete type that implements it, or between a base class and a concrete type that inherits it. The examples use the run-time methods of the container to register the types it will resolve.

\n

Resolving Types Registered as Interfaces

\n

The following code registers a mapping for an interface named IService and specifies that the container should return an instance of the CustomerService class (which implements the IService interface). In this case, the type IService identifies the registration type. Code that requests an instance of the type IService receives an instance of the CustomerService class. The following example uses the generic overloads of the container methods.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\n\nvar instance = container.Resolve<IService>();\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\n\nvar instance = (IService)container.Resolve(typeof(IMyService));\n
\n

Resolving Types Registered as Base Classes

\n

When you need to register a mapping for a base class or other object type (instead of an interface), you use the overloads of the RegisterType and Resolve methods that accept object type names. The following examples show the use of the overloads of the RegisterType and Resolve methods that accept object type names as the registration identifier.

\n

The following code registers a mapping for an object named MyBaseService and specifies that the container should return an instance of the CustomerService class (which inherits from the MyBaseService class). In this case, the type MyBaseService identifies the registration. Code that requests an instance of the type MyBaseService receives an instance of the CustomerService class.

\n
IUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<MyBaseService, CustomerService>();\n\nMyBaseService myServiceInstance = myContainer.Resolve<MyBaseService>();\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType(typeof(MyBaseService), typeof(CustomerService));\n\nMyBaseService myServiceInstance = (MyBaseService)myContainer.Resolve(typeof(MyBaseService));\n
\n

Using the Resolve Method with Named Registrations

\n

If you need to create multiple registrations for the same type, you can specify a name to differentiate each registration. Then, to retrieve an object of the appropriate type, you specify the name and the registered type. Following examples demonstrate the technique:

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\ncontainer.RegisterType<IService, CompanyService>("name");\ncontainer.RegisterType<IService, ExternalService>("other name");\n\nvar instance = container.Resolve<IService>("name");\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, EmailService>();\ncontainer.RegisterType<IService, LDAPService>("name");\ncontainer.RegisterType<IService, CustomerService>("other name");\n\nvar instance = (IService)container.Resolve(typeof(IMyService), "other name");\n
\n

Note

\n

If the target class or object specifies any dependencies of its own, using constructor, property, or method call injection attributes, the instance returned will have these dependent objects injected automatically.

\n

By default, the RegisterType method registers a type with a transient lifetime, which means that the container will not hold onto a reference to the objects it creates when you call the Resolve method. Each time you call one of these methods, the container generates a new instance of the specified or mapped type. However, you can use lifetime managers to control the creation, lifetime, and disposal of objects if required.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/type.md","depot_name":".","document_id":"828ddeb7-d1d0-42ca-3b7b-92e045095af2","document_version_independent_id":"00b7411d-8720-a67b-d3ce-17be06f6dca6","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Resolution/type.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/type.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Resolution/type.md","rawTitle":"

Resolving an Object by Type

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Resolution By Type","uid":"Tutorial.Resolution.Type","updated_at":"2019-04-30 12:00 AM","wordCount":750},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/selection/constructor/index.html b/_site/tutorials/composition/selection/constructor/index.html new file mode 100644 index 0000000..b31cb28 --- /dev/null +++ b/_site/tutorials/composition/selection/constructor/index.html @@ -0,0 +1 @@ +{"content":"\n

Proper selection of the constructor used for type instantiation is one of the most important aspects of the container operation. When creating an object, the container uses one of the following algorithms to select a constructor it will be using to initialize the object:

\n\n

Automatic Constructor Selection

\n

Automatic constructor selection is performed if no other information is available on how to create a Type. Unity uses dynamic, real time algorithm to discover and select a constructor.

\n

The Unity container will try to execute the most complex constructor it can provide with appropriate dependencies. In other words, if the container can resolve and/or inject all parameters of the constructor, it will be selected.

\n

Creating Build Pipeline

\n

Selection process takes place during the first resolution of a Type contract. Unity container employs lazy resolution strategy. It will defer pipeline creation until the contract (RegistrationType and Name) is requested.

\n

The lazy approach allows registrations to proceed at random order and do not require dependencies to be registered before dependents. As long as all of these are available at the time of resolution Unity does not care in what order they were registered.

\n

Constructor Selection Steps

\n

One of the first steps, when creating a pipeline, is a constructor selection. Constructors are selected in the following order:

\n
    \n
  • If present, use registered Injection Constructor
  • \n
  • If present, annotated with an attribute
  • \n
  • Automatically select constructor\n
      \n
    • Get all accessible constructors
    • \n
    • Process constructors in ascending order from most complex to the default\n
        \n
      • Filter out restricted constructors
      • \n
      • Loop through parameters and check if\n
          \n
        • Is primitive\n
            \n
          • Is registered with the container
          • \n
          • Has default value
          • \n
          \n
        • \n
        • Is resolvable type
        • \n
        • Is registered with container
        • \n
        \n
      • \n
      • Select the first constructor the container can create
      • \n
      \n
    • \n
    \n
  • \n
\n

The Unity container will select the first successful match and use it as a selection.

\n
\n
WARNING
\n

When more than one constructor could be matched at the same time, the order and constructor selection can not be guaranteed.

\n
\n

During normal operation the container does not perform validation.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will perform a selection validation and will throw an exception, reporting ambiguous constructors, if more than one constructor can be successfully selected with current configuration.

\n
\n

If no constructor could be selected, the container will throw an exception.

\n

Pipeline retention

\n

Once the pipeline is created, it will be used to satisfy all subsequent requests for that contract. If you need to update or rebuild the pipeline, the contract has to be re-registered.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/selection/constructor/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/selection/constructor/","conceptual":"\n

Proper selection of the constructor used for type instantiation is one of the most important aspects of the container operation. When creating an object, the container uses one of the following algorithms to select a constructor it will be using to initialize the object:

\n\n

Automatic Constructor Selection

\n

Automatic constructor selection is performed if no other information is available on how to create a Type. Unity uses dynamic, real time algorithm to discover and select a constructor.

\n

The Unity container will try to execute the most complex constructor it can provide with appropriate dependencies. In other words, if the container can resolve and/or inject all parameters of the constructor, it will be selected.

\n

Creating Build Pipeline

\n

Selection process takes place during the first resolution of a Type contract. Unity container employs lazy resolution strategy. It will defer pipeline creation until the contract (RegistrationType and Name) is requested.

\n

The lazy approach allows registrations to proceed at random order and do not require dependencies to be registered before dependents. As long as all of these are available at the time of resolution Unity does not care in what order they were registered.

\n

Constructor Selection Steps

\n

One of the first steps, when creating a pipeline, is a constructor selection. Constructors are selected in the following order:

\n
    \n
  • If present, use registered Injection Constructor
  • \n
  • If present, annotated with an attribute
  • \n
  • Automatically select constructor\n
      \n
    • Get all accessible constructors
    • \n
    • Process constructors in ascending order from most complex to the default\n
        \n
      • Filter out restricted constructors
      • \n
      • Loop through parameters and check if\n
          \n
        • Is primitive\n
            \n
          • Is registered with the container
          • \n
          • Has default value
          • \n
          \n
        • \n
        • Is resolvable type
        • \n
        • Is registered with container
        • \n
        \n
      • \n
      • Select the first constructor the container can create
      • \n
      \n
    • \n
    \n
  • \n
\n

The Unity container will select the first successful match and use it as a selection.

\n
\n
WARNING
\n

When more than one constructor could be matched at the same time, the order and constructor selection can not be guaranteed.

\n
\n

During normal operation the container does not perform validation.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will perform a selection validation and will throw an exception, reporting ambiguous constructors, if more than one constructor can be successfully selected with current configuration.

\n
\n

If no constructor could be selected, the container will throw an exception.

\n

Pipeline retention

\n

Once the pipeline is created, it will be used to satisfy all subsequent requests for that contract. If you need to update or rebuild the pipeline, the contract has to be re-registered.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/constructor.md","depot_name":".","document_id":"aea11f2a-6c27-f320-3e46-c7b606c05557","document_version_independent_id":"cd59209a-97e5-ae23-fabe-a9a5b024c9a4","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Selection/constructor.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Selection/constructor.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Automatic Constructor Selection","uid":"Tutorial.Selection.Constructor","updated_at":"2019-04-30 12:00 AM","wordCount":490},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/selection/selection/index.html b/_site/tutorials/composition/selection/selection/index.html new file mode 100644 index 0000000..39b2391 --- /dev/null +++ b/_site/tutorials/composition/selection/selection/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/selection/selection/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/selection/selection/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/selection.md","depot_name":".","document_id":"773829b3-06bb-7923-fe4b-0867d098e405","document_version_independent_id":"ad545286-383e-94cb-a269-1c679ef100bf","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Selection/selection.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/selection.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Selection/selection.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Selection","uid":"Tutorial.Resolution.Selection","updated_at":"2019-04-30 12:00 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/definitions/index.html b/_site/tutorials/definitions/index.html new file mode 100644 index 0000000..d6e31f8 --- /dev/null +++ b/_site/tutorials/definitions/index.html @@ -0,0 +1 @@ +{"content":"\n

Generics terminology

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/14/2019","updated_at_date_time":"2019-03-14T02:57:48Z"},"_path":"tutorials/definitions/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/tutorials/definitions/","conceptual":"\n

Generics terminology

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/definitions.md","depot_name":".","document_id":"04c5b240-961a-772a-7817-54e0bccae982","document_version_independent_id":"fa33c497-8117-ccce-36b1-aa3aa1d9adca","gitcommit":"https://github.com/unitycontainer/documentation/blob/a13df4070c33d6413bfa4faeecf4416ffd5f4330/tutorials/definitions.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/definitions.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/definitions.md","rawTitle":"

Terms and Definitions

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Terms and Definitions","uid":"Tutorial.Terms","updated_at":"2019-03-14 02:57 AM","wordCount":2},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/extensions/activation/index.html b/_site/tutorials/extensions/activation/index.html new file mode 100644 index 0000000..ce85329 --- /dev/null +++ b/_site/tutorials/extensions/activation/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/extensions/activation/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/extensions/activation/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/activation.md","depot_name":".","document_id":"e2640f64-1956-be9e-d1a7-e34a5362fb8a","document_version_independent_id":"afd125e2-8bf4-f155-47be-a8e5a74167ea","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/activation.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/activation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/activation.md","rawTitle":"

Force Activation Extension

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Force Activation Extension","uid":"Tutorial.Extension.Activation","updated_at":"2019-04-05 01:56 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/extensions/compilation/index.html b/_site/tutorials/extensions/compilation/index.html new file mode 100644 index 0000000..ba598c7 --- /dev/null +++ b/_site/tutorials/extensions/compilation/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/extensions/compilation/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/extensions/compilation/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/compilation.md","depot_name":".","document_id":"48ad6cfd-57bb-860b-c35c-bcb80309ad1f","document_version_independent_id":"b9e3cc08-5d2e-b6ff-1c10-1d5b98a5cb54","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/compilation.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/compilation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/compilation.md","rawTitle":"

Force Compilation Extension

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Force Compilation Extension","uid":"Tutorial.Extension.Compilation","updated_at":"2019-04-05 01:56 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/extensions/diagnostic/index.html b/_site/tutorials/extensions/diagnostic/index.html new file mode 100644 index 0000000..4efa05e --- /dev/null +++ b/_site/tutorials/extensions/diagnostic/index.html @@ -0,0 +1 @@ +{"content":"\n

Creating and configuring Unity container is a complicated process. A lot of things could go wrong and finding where it was misconfigured could be rather involved. To simplify debugging and to help fix issues Unity offers Diagnostic extension.

\n

Performance considerations

\n

The Unity container uses reflection for most of its operations. It gathers information about types, creates pipelines to create these types, and verifies everything all based on reflected data. Because of that it is rather resource extensive and relatively slow.

\n

To optimize performance, Unity engine does not do any runtime validation and only performs absolute minimum checks, just enough to be able to run. As result a lot of irregular conditions might go unnoticed. To remedy this, the container exposes Diagnostic extension which does thorough examination of all registration data and throws exceptions on any irregularities.

\n

Unity Diagnostic Extension

\n

Diagnostic extension, among other things, verifies the following conditions:

\n
    \n
  • Cyclical references (The famous Stack Overflow Exception)
  • \n
  • Validity of provided Injection Members
  • \n
  • Improper referencing to itself
  • \n
  • Invalid parameters in constructors and invoked methods
  • \n
\n

Enabling Diagnostics

\n

The extension could be enabled in few different ways:

\n

Add Extension

\n

The most basic case is when extension is added via AddExtension(...) call. It works with either regular or generic methods.

\n
var container = new UnityContainer()\n                .AddExtension(new Diagnostic());\n
\n

or

\n
var container = new UnityContainer()\n                .AddExtension<Diagnostic>();\n
\n

The first method, one with AddExtension(new Diagnostic()) is a bit faster.

\n

Using extension method

\n

For convenience, Unity container exposes EnableDiagnostic() extension method. This method is equal to adding extension to the container.

\n
var container = new UnityContainer()\n                    .EnableDiagnostic();\n
\n

Enabling extension only in Debug

\n

The container provides conditional extension EnableDebugDiagnostic(). This method will only enable diagnostics in DEBUG mode. In this example

\n
var container = new UnityContainer();\ncontainer.EnableDebugDiagnostic();\n
\n

the extension is enabled only if calling method is compiled in Debug configuration.

\n
\n
IMPORTANT
\n

Extension methods will not work on IUnityContainer interface. It is only available on the UnityContainer itself.

\n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:59:45Z"},"_path":"tutorials/extensions/diagnostic/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/extensions/diagnostic/","conceptual":"\n

Creating and configuring Unity container is a complicated process. A lot of things could go wrong and finding where it was misconfigured could be rather involved. To simplify debugging and to help fix issues Unity offers Diagnostic extension.

\n

Performance considerations

\n

The Unity container uses reflection for most of its operations. It gathers information about types, creates pipelines to create these types, and verifies everything all based on reflected data. Because of that it is rather resource extensive and relatively slow.

\n

To optimize performance, Unity engine does not do any runtime validation and only performs absolute minimum checks, just enough to be able to run. As result a lot of irregular conditions might go unnoticed. To remedy this, the container exposes Diagnostic extension which does thorough examination of all registration data and throws exceptions on any irregularities.

\n

Unity Diagnostic Extension

\n

Diagnostic extension, among other things, verifies the following conditions:

\n
    \n
  • Cyclical references (The famous Stack Overflow Exception)
  • \n
  • Validity of provided Injection Members
  • \n
  • Improper referencing to itself
  • \n
  • Invalid parameters in constructors and invoked methods
  • \n
\n

Enabling Diagnostics

\n

The extension could be enabled in few different ways:

\n

Add Extension

\n

The most basic case is when extension is added via AddExtension(...) call. It works with either regular or generic methods.

\n
var container = new UnityContainer()\n                .AddExtension(new Diagnostic());\n
\n

or

\n
var container = new UnityContainer()\n                .AddExtension<Diagnostic>();\n
\n

The first method, one with AddExtension(new Diagnostic()) is a bit faster.

\n

Using extension method

\n

For convenience, Unity container exposes EnableDiagnostic() extension method. This method is equal to adding extension to the container.

\n
var container = new UnityContainer()\n                    .EnableDiagnostic();\n
\n

Enabling extension only in Debug

\n

The container provides conditional extension EnableDebugDiagnostic(). This method will only enable diagnostics in DEBUG mode. In this example

\n
var container = new UnityContainer();\ncontainer.EnableDebugDiagnostic();\n
\n

the extension is enabled only if calling method is compiled in Debug configuration.

\n
\n
IMPORTANT
\n

Extension methods will not work on IUnityContainer interface. It is only available on the UnityContainer itself.

\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/diagnostic.md","depot_name":".","document_id":"b64b01be-61e5-4cb2-e0ba-303da7dd561a","document_version_independent_id":"866e42fd-367d-52c3-d247-d1cd88951345","gitcommit":"https://github.com/unitycontainer/documentation/blob/8308246108d439f29e11e853c6daa702c58ba726/tutorials/Extensions/diagnostic.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/diagnostic.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/diagnostic.md","rawTitle":"

Diagnostic

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Diagnostic Extension","uid":"Tutorial.Extension.Diagnostic","updated_at":"2019-04-05 01:59 AM","wordCount":315},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/extensions/extensions/index.html b/_site/tutorials/extensions/extensions/index.html new file mode 100644 index 0000000..b0fbfaa --- /dev/null +++ b/_site/tutorials/extensions/extensions/index.html @@ -0,0 +1 @@ +{"content":"\n

Unity container comes prepackaged with several extensions:

\n
    \n
  • Diagnostic Extension
  • \n
  • Legacy Constructor Selector Extension
  • \n
  • Force Compilation Extension
  • \n
  • Force Activation Extension
  • \n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/extensions/extensions/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/extensions/extensions/","conceptual":"\n

Unity container comes prepackaged with several extensions:

\n
    \n
  • Diagnostic Extension
  • \n
  • Legacy Constructor Selector Extension
  • \n
  • Force Compilation Extension
  • \n
  • Force Activation Extension
  • \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/extensions.md","depot_name":".","document_id":"175515ab-3a5e-0514-8749-ed0171ff6bd0","document_version_independent_id":"af9fca54-a600-b1ab-4b7a-4cdde5a31dae","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/extensions.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/extensions.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/extensions.md","rawTitle":"

Unity Extensions

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Extensions","uid":"Tutorial.Extensions","updated_at":"2019-04-05 01:56 AM","wordCount":19},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/extensions/legacy/index.html b/_site/tutorials/extensions/legacy/index.html new file mode 100644 index 0000000..920cbcf --- /dev/null +++ b/_site/tutorials/extensions/legacy/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/extensions/legacy/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/extensions/legacy/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/legacy.md","depot_name":".","document_id":"562b10a8-2c05-2a01-04d6-0be4b44f6361","document_version_independent_id":"67ecddf7-6f6f-c595-4348-6f44de20a0a3","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/legacy.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/legacy.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/legacy.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Legacy Extension","uid":"Tutorial.Extension.Legacy","updated_at":"2019-04-05 01:56 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/hierarchies/index.html b/_site/tutorials/hierarchies/index.html new file mode 100644 index 0000000..b2ee15b --- /dev/null +++ b/_site/tutorials/hierarchies/index.html @@ -0,0 +1 @@ +{"content":"\n

Unity container provides a way to create child containers (other systems refer to it as resolution scopes) and allows building sophisticated scope trees of registrations. There are just a few simple rules to follow when dealing with container hierarchies:

\n
    \n
  • Types registered in predecessor containers always available in descendant containers. This is a very simple concept, each registration is like a public virtual declaration in cs types. Every descendant inherits it and can use at will.

    \n
  • \n
  • Types registered in descendant containers override the same registration of predecessors. Following the same analogy with public virtual declarations, each override registration installs its own declaration and hides the one in predecessor containers.

    \n
  • \n
\n

Using Container Hierarchies

\n

Unity supports nested containers, allowing you to build container hierarchies. Nesting containers enables you to control the scope and lifetime of singleton objects, and register different mappings for specific types. This topic contains the following sections that describe how you can create container hierarchies and use them in your applications:

\n
    \n
  • Constructing and Disposing Unity Containers
  • \n
  • Controlling Object Scope and Lifetime
  • \n
  • Overriding registrations
  • \n
\n

Constructing and Disposing Unity Containers

\n

The following methods enable you to create a new default UnityContainer, create a child container that has a specified UnityContainer as its parent, and dispose an existing container.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MethodDescription
new UnityContainer()Creates a root UnityContainer. Returns a reference to the new container.
CreateChildContainer()Creates a new nested UnityContainer as a child of the current container. The current container first applies its own settings, and then it checks the parent for additional settings. Returns a reference to the new container.
Dispose()Disposes this container instance and any child containers. Also disposes any registered object instances whose lifetimes are managed by the container.
\n

Controlling Object Scope and Lifetime

\n

When the container creates singleton objects, it manages the lifetime of these singletons. They remain in scope until you (or the garbage collector) dispose the container. At this point, it disposes the registered singleton instances it contains. In addition, if you dispose the parent container in a nested container hierarchy, it automatically disposes all child containers and the registered singletons they contain.

\n

Therefore, if you require two separate sets of such objects that must have different lifetimes, you can use hierarchical containers to store and manage each set. Register instances that you want to be able to dispose separately in one or more child containers that you can dispose without disposing the parent container.

\n

The following code demonstrates the use of a child container to manage the lifetime of specific singleton instances while maintaining the singleton instances in the parent container.

\n
\n// Create parent container\nIUnityContainer parentCtr = new UnityContainer();\n\n// Register type in parent container\nparentCtr.RegisterType<MyParentObject>(TypeLifetime.PerContainer);\n\n// Create nested child container in parent container\nIUnityContainer childCtr = parentCtr.CreateChildContainer();\n\n// Register type in child container\nchildCtr.RegisterType<MyChildObject>(TypeLifetime.PerContainer);\n\n// Create instance of type stored in parent container\nMyParentObject parentObj = parentCtr.Resolve<MyParentObject>();\n\n// Create instance of type stored in child container\nMyChildObject childObj = childCtr.Resolve<MyChildObject>();\n\n// ... can use both generated objects here ...\n\n// Dispose child container\nchildCtr.Dispose();\n\n// ... can use only object in parent container here ...\n\n// Dispose parent container\nparentCtr.Dispose();\n
\n

Overriding registrations

\n

You can use nested containers when you have slightly different dependency injection requirements for specific objects but want to provide a fallback facility for objects that implement a specific interface or are of a specific type. For example, you may have a general requirement for objects that implement the IMyObject interface to map to the type MyStandardObject. However, in specific parts of the application code, you may want the IMyObject interface to map to the type MySpecialObject.

\n

In this case, you can register the general mapping in the parent container and register the specific case in a child container. Then, when you want to obtain an instance of the object, you call the Resolve method on the appropriate container. If you call the method on the child container, it returns an object of type MySpecialObject. If you call the method on the parent container, it returns an object of type MyStandardObject.

\n

However, the advantage with nested containers is that, if the child container cannot locate a mapping for the requested interface or type, it passes the request to its parent container and onward through the hierarchy until it reaches the root or base container. Therefore, for objects not mapped in the child container, the mapping in the parent container (or in an ancestor container where there are more than two levels in the hierarchy) defines the object type returned.

\n

The following code shows how you can implement the preceding scenario.

\n
// Create parent container\nIUnityContainer parentCtr = new UnityContainer();\n\n// Register two mappings for types in parent container\nparentCtr.RegisterType<IMyObject, MyStandardObject>();\nparentCtr.RegisterType<IMyOtherObject, MyOtherObject>();\n\n// Create nested child container in parent container\nIUnityContainer childCtr = parentCtr.CreateChildContainer();\n\n// Register mapping for specific type in child container\nchildCtr.RegisterType<IMyObject, MySpecialObject>();\n\n// Now retrieve instances of the mapped objects using the child container.\n// Using the interface as the type for the returned objects means that it\n// does not matter which container returns the actual object.\n\n// This code returns an object of type MySpecialObject using the mapping\n// registered in the child container:\nIMyObject specialObject = childCtr.Resolve<IMyObject>();\n\n// This code returns an object of type MyOtherObject using the mapping\n// registered in the parent container because there is no mapping in \n// the child container for this type:\nIMyOtherObject otherObject = childCtr.Resolve<IMyOtherObject>();\n\n// Now retrieve instance of the standard object using the parent container.\n// This code returns an object of type MyStandardObject using the mapping\n// registered in the parent container:\nIMyObject standardObject = parentCtr.Resolve<IMyObject>();\n\n// Dispose parent container and child container\nparentCtr.Dispose();\n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/16/2019","updated_at_date_time":"2019-03-16T20:42:53Z"},"_path":"tutorials/hierarchies/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/tutorials/hierarchies/","conceptual":"\n

Unity container provides a way to create child containers (other systems refer to it as resolution scopes) and allows building sophisticated scope trees of registrations. There are just a few simple rules to follow when dealing with container hierarchies:

\n
    \n
  • Types registered in predecessor containers always available in descendant containers. This is a very simple concept, each registration is like a public virtual declaration in cs types. Every descendant inherits it and can use at will.

    \n
  • \n
  • Types registered in descendant containers override the same registration of predecessors. Following the same analogy with public virtual declarations, each override registration installs its own declaration and hides the one in predecessor containers.

    \n
  • \n
\n

Using Container Hierarchies

\n

Unity supports nested containers, allowing you to build container hierarchies. Nesting containers enables you to control the scope and lifetime of singleton objects, and register different mappings for specific types. This topic contains the following sections that describe how you can create container hierarchies and use them in your applications:

\n
    \n
  • Constructing and Disposing Unity Containers
  • \n
  • Controlling Object Scope and Lifetime
  • \n
  • Overriding registrations
  • \n
\n

Constructing and Disposing Unity Containers

\n

The following methods enable you to create a new default UnityContainer, create a child container that has a specified UnityContainer as its parent, and dispose an existing container.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MethodDescription
new UnityContainer()Creates a root UnityContainer. Returns a reference to the new container.
CreateChildContainer()Creates a new nested UnityContainer as a child of the current container. The current container first applies its own settings, and then it checks the parent for additional settings. Returns a reference to the new container.
Dispose()Disposes this container instance and any child containers. Also disposes any registered object instances whose lifetimes are managed by the container.
\n

Controlling Object Scope and Lifetime

\n

When the container creates singleton objects, it manages the lifetime of these singletons. They remain in scope until you (or the garbage collector) dispose the container. At this point, it disposes the registered singleton instances it contains. In addition, if you dispose the parent container in a nested container hierarchy, it automatically disposes all child containers and the registered singletons they contain.

\n

Therefore, if you require two separate sets of such objects that must have different lifetimes, you can use hierarchical containers to store and manage each set. Register instances that you want to be able to dispose separately in one or more child containers that you can dispose without disposing the parent container.

\n

The following code demonstrates the use of a child container to manage the lifetime of specific singleton instances while maintaining the singleton instances in the parent container.

\n
\n// Create parent container\nIUnityContainer parentCtr = new UnityContainer();\n\n// Register type in parent container\nparentCtr.RegisterType<MyParentObject>(TypeLifetime.PerContainer);\n\n// Create nested child container in parent container\nIUnityContainer childCtr = parentCtr.CreateChildContainer();\n\n// Register type in child container\nchildCtr.RegisterType<MyChildObject>(TypeLifetime.PerContainer);\n\n// Create instance of type stored in parent container\nMyParentObject parentObj = parentCtr.Resolve<MyParentObject>();\n\n// Create instance of type stored in child container\nMyChildObject childObj = childCtr.Resolve<MyChildObject>();\n\n// ... can use both generated objects here ...\n\n// Dispose child container\nchildCtr.Dispose();\n\n// ... can use only object in parent container here ...\n\n// Dispose parent container\nparentCtr.Dispose();\n
\n

Overriding registrations

\n

You can use nested containers when you have slightly different dependency injection requirements for specific objects but want to provide a fallback facility for objects that implement a specific interface or are of a specific type. For example, you may have a general requirement for objects that implement the IMyObject interface to map to the type MyStandardObject. However, in specific parts of the application code, you may want the IMyObject interface to map to the type MySpecialObject.

\n

In this case, you can register the general mapping in the parent container and register the specific case in a child container. Then, when you want to obtain an instance of the object, you call the Resolve method on the appropriate container. If you call the method on the child container, it returns an object of type MySpecialObject. If you call the method on the parent container, it returns an object of type MyStandardObject.

\n

However, the advantage with nested containers is that, if the child container cannot locate a mapping for the requested interface or type, it passes the request to its parent container and onward through the hierarchy until it reaches the root or base container. Therefore, for objects not mapped in the child container, the mapping in the parent container (or in an ancestor container where there are more than two levels in the hierarchy) defines the object type returned.

\n

The following code shows how you can implement the preceding scenario.

\n
// Create parent container\nIUnityContainer parentCtr = new UnityContainer();\n\n// Register two mappings for types in parent container\nparentCtr.RegisterType<IMyObject, MyStandardObject>();\nparentCtr.RegisterType<IMyOtherObject, MyOtherObject>();\n\n// Create nested child container in parent container\nIUnityContainer childCtr = parentCtr.CreateChildContainer();\n\n// Register mapping for specific type in child container\nchildCtr.RegisterType<IMyObject, MySpecialObject>();\n\n// Now retrieve instances of the mapped objects using the child container.\n// Using the interface as the type for the returned objects means that it\n// does not matter which container returns the actual object.\n\n// This code returns an object of type MySpecialObject using the mapping\n// registered in the child container:\nIMyObject specialObject = childCtr.Resolve<IMyObject>();\n\n// This code returns an object of type MyOtherObject using the mapping\n// registered in the parent container because there is no mapping in \n// the child container for this type:\nIMyOtherObject otherObject = childCtr.Resolve<IMyOtherObject>();\n\n// Now retrieve instance of the standard object using the parent container.\n// This code returns an object of type MyStandardObject using the mapping\n// registered in the parent container:\nIMyObject standardObject = parentCtr.Resolve<IMyObject>();\n\n// Dispose parent container and child container\nparentCtr.Dispose();\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/hierarchies.md","depot_name":".","document_id":"f2ce8356-f147-18ea-608e-d435aba30a24","document_version_independent_id":"3059ba46-3fde-dc5c-c040-4e7e672e2330","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/tutorials/hierarchies.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/hierarchies.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/hierarchies.md","rawTitle":"

Container Hierarchies

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Container Hierarchy","uid":"Tutorial.Container.Hierarchy","updated_at":"2019-03-16 08:42 PM","wordCount":935},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/container/index.html b/_site/tutorials/lifetime/container/index.html new file mode 100644 index 0000000..dadbc9a --- /dev/null +++ b/_site/tutorials/lifetime/container/index.html @@ -0,0 +1 @@ +{"content":"\n

Per Container lifetime allows a registration of an existing or resolved object as a scoped singleton in the container it was created or registered. In other words this instance is unique within the container it war registered with. Child or parent containers could have their own instances registered for the same contract.

\n

Unity returns the same instance each time the Resolve method is called or when the dependency mechanism injects the instance into other classes.

\n

The Lifetime Manager

\n

Per container lifetime is controlled by ContainerControlledLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects registered with a particular container.

\n

Registration

\n

Per container lifetime is supported by all registration types

\n

Example

\n

To create a Type registration with per container lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerContainer);\n
\n

to register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerContainer);\n
\n

or to register an instance:

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.PerContainer);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime, FactoryLifetime, and InstanceLifetime respectively.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/23/2019","updated_at_date_time":"2019-03-23T02:03:25Z"},"_path":"tutorials/lifetime/container/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/container/","conceptual":"\n

Per Container lifetime allows a registration of an existing or resolved object as a scoped singleton in the container it was created or registered. In other words this instance is unique within the container it war registered with. Child or parent containers could have their own instances registered for the same contract.

\n

Unity returns the same instance each time the Resolve method is called or when the dependency mechanism injects the instance into other classes.

\n

The Lifetime Manager

\n

Per container lifetime is controlled by ContainerControlledLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects registered with a particular container.

\n

Registration

\n

Per container lifetime is supported by all registration types

\n

Example

\n

To create a Type registration with per container lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerContainer);\n
\n

to register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerContainer);\n
\n

or to register an instance:

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.PerContainer);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime, FactoryLifetime, and InstanceLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container.md","depot_name":".","document_id":"f944002f-f282-161d-59c3-dc0158b81c38","document_version_independent_id":"50f57fc6-d6aa-c252-3fee-3489768c2729","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/container.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/container.md","rawTitle":"

Per Container Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Per Container Lifetime","uid":"Tutorial.Lifetime.Container","updated_at":"2019-03-23 02:03 AM","wordCount":179},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/container_transient/index.html b/_site/tutorials/lifetime/container_transient/index.html new file mode 100644 index 0000000..daa2fcb --- /dev/null +++ b/_site/tutorials/lifetime/container_transient/index.html @@ -0,0 +1 @@ +{"content":"\n

This lifetime is similar to Transient Lifetime with exception how the container holds references to created objects.

\n

On each call to the Resolve<T>() method a container will create a new objects. If the objects implements IDisposable, the container will hold a reference to the interface and will dispose the object when the container goes out of scope.

\n

This lifetime is particularly useful in session based designs with child containers associated with the session.

\n

The Lifetime Manager

\n

Per container transient lifetime is controlled by ContainerControlledTransientManager type. This lifetime manager creates transient objects and holds reference to disposable instance and disposes these when container goes out of scope.

\n

Registration

\n

Per container transient lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per container transient lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerContainerTransient);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerContainerTransient);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/23/2019","updated_at_date_time":"2019-03-23T02:03:25Z"},"_path":"tutorials/lifetime/container_transient/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/container_transient/","conceptual":"\n

This lifetime is similar to Transient Lifetime with exception how the container holds references to created objects.

\n

On each call to the Resolve<T>() method a container will create a new objects. If the objects implements IDisposable, the container will hold a reference to the interface and will dispose the object when the container goes out of scope.

\n

This lifetime is particularly useful in session based designs with child containers associated with the session.

\n

The Lifetime Manager

\n

Per container transient lifetime is controlled by ContainerControlledTransientManager type. This lifetime manager creates transient objects and holds reference to disposable instance and disposes these when container goes out of scope.

\n

Registration

\n

Per container transient lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per container transient lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerContainerTransient);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerContainerTransient);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container_transient.md","depot_name":".","document_id":"29a2ea99-b616-e72c-4e44-348a0626f001","document_version_independent_id":"65e82dd5-d73d-c902-ecfd-b6d9899f7e36","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/container_transient.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container_transient.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/container_transient.md","rawTitle":"

Container Transient Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Container Lifetime","uid":"Tutorial.Lifetime.Container.Transient","updated_at":"2019-03-23 02:03 AM","wordCount":184},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/disposal/index.html b/_site/tutorials/lifetime/disposal/index.html new file mode 100644 index 0000000..5871d62 --- /dev/null +++ b/_site/tutorials/lifetime/disposal/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"2/22/2019","updated_at_date_time":"2019-02-22T16:26:54Z"},"_path":"tutorials/lifetime/disposal/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/disposal/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/disposal.md","depot_name":".","document_id":"2b14df58-74ce-1a15-ad4b-1a2d4d6cbeef","document_version_independent_id":"c0f3331c-2ddb-e9d7-fca1-2b6545a81a01","gitcommit":"https://github.com/unitycontainer/documentation/blob/5540f1bb5b8cc106e4f2c8566afa78046a94691a/tutorials/lifetime/disposal.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/disposal.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/disposal.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","updated_at":"2019-02-22 04:26 PM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/external/index.html b/_site/tutorials/lifetime/external/index.html new file mode 100644 index 0000000..19cced3 --- /dev/null +++ b/_site/tutorials/lifetime/external/index.html @@ -0,0 +1 @@ +{"content":"\n

This lifetime allows you to register externally created objects with the container to enable them to participate in dependency injection process. Unity maintains only a weak reference to the instances it registers.

\n

Since the container does not maintain a strong reference to the object, the garbage collector can dispose of the objects if no other code is keeping it alive.

\n

The Lifetime Manager

\n

External lifetime is controlled by ExternallyControlledLifetimeManager type and provides basic support for externally managed objects.

\n

Registration

\n

External lifetime is only supported by Instance registrations.

\n

External lifetime is similar to Per Container Lifetime. It is held at the same container it is registered with and could be accessed and overridden in child container. Registrations with external lifetime override singletons with the same contract.

\n

Example

\n

To create a registration with external lifetime:

\n
var instance = new Service();\n...\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.External);\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/23/2019","updated_at_date_time":"2019-03-23T02:03:25Z"},"_path":"tutorials/lifetime/external/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/external/","conceptual":"\n

This lifetime allows you to register externally created objects with the container to enable them to participate in dependency injection process. Unity maintains only a weak reference to the instances it registers.

\n

Since the container does not maintain a strong reference to the object, the garbage collector can dispose of the objects if no other code is keeping it alive.

\n

The Lifetime Manager

\n

External lifetime is controlled by ExternallyControlledLifetimeManager type and provides basic support for externally managed objects.

\n

Registration

\n

External lifetime is only supported by Instance registrations.

\n

External lifetime is similar to Per Container Lifetime. It is held at the same container it is registered with and could be accessed and overridden in child container. Registrations with external lifetime override singletons with the same contract.

\n

Example

\n

To create a registration with external lifetime:

\n
var instance = new Service();\n...\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.External);\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/external.md","depot_name":".","document_id":"625147b9-ab0d-c4e5-a0f3-f578ab38848b","document_version_independent_id":"46cdda77-89a2-945f-304d-ee0461f7b5a5","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/external.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/external.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/external.md","rawTitle":"

External Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"External Lifetime","uid":"Tutorial.Lifetime.External","updated_at":"2019-03-23 02:03 AM","wordCount":162},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/hierarchical/index.html b/_site/tutorials/lifetime/hierarchical/index.html new file mode 100644 index 0000000..aa30a01 --- /dev/null +++ b/_site/tutorials/lifetime/hierarchical/index.html @@ -0,0 +1 @@ +{"content":"\n

The Unity container allows creating hierarchies of child containers. This lifetime creates local singleton for each level of the hierarchy. So, when you resolve a type and this container does not have an instance of that type, the container will create new instance. Next time the type is resolved the same instance will be returned.

\n

If a child container is created and requested to resolve the type, the child container will create a new instance and store it for subsequent resolutions. Next time the child container requests to resolve the type, it will return the stored instance.

\n

If you have multiple children, each will resolve its own instance.

\n

The Lifetime Manager

\n

Hierarchical lifetime is controlled by HierarchicalLifetimeManager type. It forces each child container to resolve its own instance of the object and does not share one with the parent or child containers.

\n

Registration

\n

Hierarchical lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with hierarchical lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.Hierarchical);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.Hierarchical);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"8/27/2019","updated_at_date_time":"2019-08-27T20:54:29Z"},"_path":"tutorials/lifetime/hierarchical/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/hierarchical/","conceptual":"\n

The Unity container allows creating hierarchies of child containers. This lifetime creates local singleton for each level of the hierarchy. So, when you resolve a type and this container does not have an instance of that type, the container will create new instance. Next time the type is resolved the same instance will be returned.

\n

If a child container is created and requested to resolve the type, the child container will create a new instance and store it for subsequent resolutions. Next time the child container requests to resolve the type, it will return the stored instance.

\n

If you have multiple children, each will resolve its own instance.

\n

The Lifetime Manager

\n

Hierarchical lifetime is controlled by HierarchicalLifetimeManager type. It forces each child container to resolve its own instance of the object and does not share one with the parent or child containers.

\n

Registration

\n

Hierarchical lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with hierarchical lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.Hierarchical);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.Hierarchical);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/hierarchical.md","depot_name":".","document_id":"ed59d502-58d2-b13f-0561-833ca822dd15","document_version_independent_id":"4a92b4ec-c719-f2a6-f0dc-cf933cc22b5d","gitcommit":"https://github.com/unitycontainer/documentation/blob/3fb58b282a3dc13782e99f27f44902dcc5ab6051/tutorials/lifetime/hierarchical.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/hierarchical.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/hierarchical.md","rawTitle":"

Hierarchical Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Hierarchical Lifetime","uid":"Tutorial.Lifetime.Hierarchical","updated_at":"2019-08-27 08:54 PM","wordCount":216},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/lifetime/index.html b/_site/tutorials/lifetime/lifetime/index.html new file mode 100644 index 0000000..c595669 --- /dev/null +++ b/_site/tutorials/lifetime/lifetime/index.html @@ -0,0 +1 @@ +{"content":"\n

The Unity container manages the lifetime of objects based on a Lifetime Manager you specify when you register the type.

\n

The default behavior for the container, if no lifetime is registered, to use a Transient Lifetime. It creates a new instance of the requested type each time Resolve method is called or when the dependency mechanism injects instances into other classes. The container does not store any references to the object.

\n

Unity uses specific types that inherit from the LifetimeManager base class (collectively referred to as lifetime managers) to control how it stores references to object instances and how the container disposes of these instances.

\n

When you register an existing object using the RegisterInstance method, the default behavior is for the container to take over management of the lifetime of the object you pass to this method using the Per Container Lifetime. This means that container maintains strong reference to the object and at the end of the container lifetime, the existing object is disposed.

\n

How registering lifetime works

\n

When type is registered with a lifetime manager, the creation and life cycle of the created instances is controlled according to that lifetime.

\n

When a container is requested to produce an instance of the type, it first checks if a lifetime manager is associated with it. If not, or if it is a transient manager, the container simply creates the instance and return it to the caller.

\n

If registration contains a lifetime manager, the container tries to get the value from that manager. If the manager has nothing stored in it, the container created an instance. But before it returns the instance to the caller it adds it to the lifetime manager for later use.

\n

Next time the type is requested, the container gets the value previously stored in the manager, if available, and returns it to the caller.

\n

Each lifetime manager has its own criteria how to store and retrieve object instances. Some only store unique instances in a container, others store unique instances per thread or session. Each algorithm serves particular purpose.

\n

Built-In Lifetimes

\n

The Unity container implements several lifetime managers that you can use directly in your code. The range covers most common use cases and scenarios. Unity includes the following lifetime implementations:

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/23/2019","updated_at_date_time":"2019-03-23T02:38:49Z"},"_path":"tutorials/lifetime/lifetime/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/lifetime/","conceptual":"\n

The Unity container manages the lifetime of objects based on a Lifetime Manager you specify when you register the type.

\n

The default behavior for the container, if no lifetime is registered, to use a Transient Lifetime. It creates a new instance of the requested type each time Resolve method is called or when the dependency mechanism injects instances into other classes. The container does not store any references to the object.

\n

Unity uses specific types that inherit from the LifetimeManager base class (collectively referred to as lifetime managers) to control how it stores references to object instances and how the container disposes of these instances.

\n

When you register an existing object using the RegisterInstance method, the default behavior is for the container to take over management of the lifetime of the object you pass to this method using the Per Container Lifetime. This means that container maintains strong reference to the object and at the end of the container lifetime, the existing object is disposed.

\n

How registering lifetime works

\n

When type is registered with a lifetime manager, the creation and life cycle of the created instances is controlled according to that lifetime.

\n

When a container is requested to produce an instance of the type, it first checks if a lifetime manager is associated with it. If not, or if it is a transient manager, the container simply creates the instance and return it to the caller.

\n

If registration contains a lifetime manager, the container tries to get the value from that manager. If the manager has nothing stored in it, the container created an instance. But before it returns the instance to the caller it adds it to the lifetime manager for later use.

\n

Next time the type is requested, the container gets the value previously stored in the manager, if available, and returns it to the caller.

\n

Each lifetime manager has its own criteria how to store and retrieve object instances. Some only store unique instances in a container, others store unique instances per thread or session. Each algorithm serves particular purpose.

\n

Built-In Lifetimes

\n

The Unity container implements several lifetime managers that you can use directly in your code. The range covers most common use cases and scenarios. Unity includes the following lifetime implementations:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/lifetime.md","depot_name":".","document_id":"5967a720-f54b-9740-a35b-9261249cd593","document_version_independent_id":"508ed49a-b285-2772-22f3-504f140d52cc","gitcommit":"https://github.com/unitycontainer/documentation/blob/c070d39a1c3e31474fffb345891d82d0095e5b2e/tutorials/lifetime/lifetime.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/lifetime.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/lifetime.md","rawTitle":"

Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Lifetime Management","uid":"Tutorial.Lifetime","updated_at":"2019-03-23 02:38 AM","wordCount":395},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/managers/index.html b/_site/tutorials/lifetime/managers/index.html new file mode 100644 index 0000000..eec60f9 --- /dev/null +++ b/_site/tutorials/lifetime/managers/index.html @@ -0,0 +1 @@ +{"content":"\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/23/2019","updated_at_date_time":"2019-03-23T02:03:25Z"},"_path":"tutorials/lifetime/managers/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/managers/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/managers.md","depot_name":".","document_id":"f8559604-1b16-b232-33ff-2f49cb407425","document_version_independent_id":"bc1bd747-5468-e6d2-c466-1c22570f613b","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/managers.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/managers.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/managers.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Lifetime Managers","uid":"Tutorial.Lifetime.Managers","updated_at":"2019-03-23 02:03 AM","wordCount":20},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/resolve/index.html b/_site/tutorials/lifetime/resolve/index.html new file mode 100644 index 0000000..3b87913 --- /dev/null +++ b/_site/tutorials/lifetime/resolve/index.html @@ -0,0 +1 @@ +{"content":"\n

This lifetime keeps a reference to an instance only for the duration of one resolution call. This type of lifetime is useful when you need to pass the same instance of the dependency to a different nodes of the resolution graph. Consider this scenario:

\n
\nclass a {}\n\nclass b\n{\n    b(a arg)\n    {...}\n}\n\nclass c\n{\n    c(a arg1, b arg2)\n    {...}\n}\n\n
\n

When you resolve type c, it depends on type b and type a. Type b, in turn, also depends on type a, and both types, c and b, require a to be the same instance.

\n

If type a is a singleton, the logic is easy. But if you require each instance of c to have a unique a, you could use per resolve lifetime. The instance of a will act as a singleton only during that one resolution. Next call to resolve the dependent type will create a new object.

\n

In the case of recursion, the singleton behavior is still applies and prevents circular dependency.

\n

The Lifetime Manager

\n

Per resolve lifetime is controlled by PerResolveLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects on a per-resolve basis.

\n

Registration

\n

Per resolve lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per resolve lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerResolve);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerResolve);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/24/2019","updated_at_date_time":"2019-03-24T19:28:59Z"},"_path":"tutorials/lifetime/resolve/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/resolve/","conceptual":"\n

This lifetime keeps a reference to an instance only for the duration of one resolution call. This type of lifetime is useful when you need to pass the same instance of the dependency to a different nodes of the resolution graph. Consider this scenario:

\n
\nclass a {}\n\nclass b\n{\n    b(a arg)\n    {...}\n}\n\nclass c\n{\n    c(a arg1, b arg2)\n    {...}\n}\n\n
\n

When you resolve type c, it depends on type b and type a. Type b, in turn, also depends on type a, and both types, c and b, require a to be the same instance.

\n

If type a is a singleton, the logic is easy. But if you require each instance of c to have a unique a, you could use per resolve lifetime. The instance of a will act as a singleton only during that one resolution. Next call to resolve the dependent type will create a new object.

\n

In the case of recursion, the singleton behavior is still applies and prevents circular dependency.

\n

The Lifetime Manager

\n

Per resolve lifetime is controlled by PerResolveLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects on a per-resolve basis.

\n

Registration

\n

Per resolve lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per resolve lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerResolve);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerResolve);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/resolve.md","depot_name":".","document_id":"0d58f2b4-f70d-efe0-5963-be66ccaab8f2","document_version_independent_id":"a1db04ca-fb22-ecd3-2542-e1a1f9d0cc0b","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a3bce3e65127863d30af8960c9eb3393e9181c1/tutorials/lifetime/resolve.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/resolve.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/resolve.md","rawTitle":"

Per Resolve Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Per Resolve Lifetime","uid":"Tutorial.Lifetime.Resolve","updated_at":"2019-03-24 07:28 PM","wordCount":269},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/singleton/index.html b/_site/tutorials/lifetime/singleton/index.html new file mode 100644 index 0000000..f1e85b8 --- /dev/null +++ b/_site/tutorials/lifetime/singleton/index.html @@ -0,0 +1 @@ +{"content":"\n

Singleton lifetime creates globally unique singleton. Any Unity container tree (parent and all the children) is guaranteed to have only one global singleton for the registered type.

\n

The Lifetime Manager

\n

The singleton lifetime is controlled by SingletonLifetimeManager type.

\n

Registration

\n

Registering a type with singleton lifetime always places the registration at the root of the container tree and makes it globally available for all the children of that container. It does not matter if registration takes places at the root of child container the destination is always the root node.

\n

Repeating the registration on any of the child nodes with singleton lifetime will always override the root registration.

\n

Singleton lifetime is supported by all registration types.

\n

Example

\n

To create a Type registration with singleton lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.Singleton);\n
\n

to register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.Singleton);\n
\n

or to register an instance:

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.Singleton);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime, FactoryLifetime, and InstanceLifetime respectively.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/24/2019","updated_at_date_time":"2019-03-24T19:28:59Z"},"_path":"tutorials/lifetime/singleton/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/singleton/","conceptual":"\n

Singleton lifetime creates globally unique singleton. Any Unity container tree (parent and all the children) is guaranteed to have only one global singleton for the registered type.

\n

The Lifetime Manager

\n

The singleton lifetime is controlled by SingletonLifetimeManager type.

\n

Registration

\n

Registering a type with singleton lifetime always places the registration at the root of the container tree and makes it globally available for all the children of that container. It does not matter if registration takes places at the root of child container the destination is always the root node.

\n

Repeating the registration on any of the child nodes with singleton lifetime will always override the root registration.

\n

Singleton lifetime is supported by all registration types.

\n

Example

\n

To create a Type registration with singleton lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.Singleton);\n
\n

to register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.Singleton);\n
\n

or to register an instance:

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.Singleton);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime, FactoryLifetime, and InstanceLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/singleton.md","depot_name":".","document_id":"a3491109-364d-05db-d4a5-f61fc2ce069e","document_version_independent_id":"39b0fe65-5ec7-100d-e2a6-897d10093ccb","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a3bce3e65127863d30af8960c9eb3393e9181c1/tutorials/lifetime/singleton.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/singleton.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/singleton.md","rawTitle":"

Singleton Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Singleton Lifetime","uid":"Tutorial.Lifetime.Singleton","updated_at":"2019-03-24 07:28 PM","wordCount":182},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/thread/index.html b/_site/tutorials/lifetime/thread/index.html new file mode 100644 index 0000000..440246c --- /dev/null +++ b/_site/tutorials/lifetime/thread/index.html @@ -0,0 +1 @@ +{"content":"\n

Per thread lifetime means a new instance of the registered Type will be created once per each thread. In other words, if a Resolve<T>() method is called on a thread the first time, it will return a new object. Each subsequent call to Resolve<T>(), or when the dependency mechanism injects instances of the type into other classes on the same thread, the container will return the same object.

\n

The Lifetime Manager

\n

Per thread lifetime is controlled by PerThreadLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects on a per-thread basis.

\n

Registration

\n

Per thread lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per thread lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerThread);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerThread);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/23/2019","updated_at_date_time":"2019-03-23T00:23:42Z"},"_path":"tutorials/lifetime/thread/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/thread/","conceptual":"\n

Per thread lifetime means a new instance of the registered Type will be created once per each thread. In other words, if a Resolve<T>() method is called on a thread the first time, it will return a new object. Each subsequent call to Resolve<T>(), or when the dependency mechanism injects instances of the type into other classes on the same thread, the container will return the same object.

\n

The Lifetime Manager

\n

Per thread lifetime is controlled by PerThreadLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects on a per-thread basis.

\n

Registration

\n

Per thread lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per thread lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerThread);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerThread);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/thread.md","depot_name":".","document_id":"ab2df0fc-9e21-ded4-29f6-963493984600","document_version_independent_id":"572b5b1f-4bc4-bd1e-0e0a-4b89f5fe2529","gitcommit":"https://github.com/unitycontainer/documentation/blob/bb6dc876c93ae8f48e84e24ed81ea6122119f554/tutorials/lifetime/thread.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/thread.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/thread.md","rawTitle":"

Per Thread Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Per Thread Lifetime","uid":"Tutorial.Lifetime.Thread","updated_at":"2019-03-23 12:23 AM","wordCount":169},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/transient/index.html b/_site/tutorials/lifetime/transient/index.html new file mode 100644 index 0000000..6e5daba --- /dev/null +++ b/_site/tutorials/lifetime/transient/index.html @@ -0,0 +1 @@ +{"content":"\n

Transient lifetime is a default lifetime of the Unity container. As the name implies it lasts very short period of time, actually, no time at all. In the Unity container terms, having transient lifetime is the same as having no lifetime manager at all.

\n

For this lifetime manager Unity creates and returns a new instance of the requested type for each call to the Resolve method.

\n

The Lifetime Manager

\n

The transient lifetime is controlled by TransientLifetimeManager. This lifetime manager is used by default for all types registered using the RegisterType method where no specific manager has been provided.

\n

Registration

\n

When registering a transient Type it is recommended to not pass an instance of TransientLifetimeManager to the registration, but allow Unity to create it explicitly.

\n

Example

\n
RegisterType<Foo>();\nRegisterType<IService, Service>();\n
\n

In this example a Type Foo and a mapping from IService to Service both registered with transient lifetime. So every call to Resolve<Foo>() or Resolve<IService>() will create a new object instance.

\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/22/2019","updated_at_date_time":"2019-03-22T23:43:39Z"},"_path":"tutorials/lifetime/transient/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/transient/","conceptual":"\n

Transient lifetime is a default lifetime of the Unity container. As the name implies it lasts very short period of time, actually, no time at all. In the Unity container terms, having transient lifetime is the same as having no lifetime manager at all.

\n

For this lifetime manager Unity creates and returns a new instance of the requested type for each call to the Resolve method.

\n

The Lifetime Manager

\n

The transient lifetime is controlled by TransientLifetimeManager. This lifetime manager is used by default for all types registered using the RegisterType method where no specific manager has been provided.

\n

Registration

\n

When registering a transient Type it is recommended to not pass an instance of TransientLifetimeManager to the registration, but allow Unity to create it explicitly.

\n

Example

\n
RegisterType<Foo>();\nRegisterType<IService, Service>();\n
\n

In this example a Type Foo and a mapping from IService to Service both registered with transient lifetime. So every call to Resolve<Foo>() or Resolve<IService>() will create a new object instance.

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/transient.md","depot_name":".","document_id":"06238d76-3b70-618a-912e-a9c1962b98ac","document_version_independent_id":"f0f53112-6e30-292d-4b71-9573e0cded31","gitcommit":"https://github.com/unitycontainer/documentation/blob/c71e919e39ea3263b8425ee4c43a30d223d6f726/tutorials/lifetime/transient.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/transient.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/transient.md","rawTitle":"

Transient Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Transient Lifetime","uid":"Tutorial.Lifetime.Transient","updated_at":"2019-03-22 11:43 PM","wordCount":181},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/factory/index.html b/_site/tutorials/registration/factory/index.html new file mode 100644 index 0000000..0a941ca --- /dev/null +++ b/_site/tutorials/registration/factory/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/6/2019","updated_at_date_time":"2019-03-06T23:21:05Z"},"_path":"tutorials/registration/factory/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/registration/factory/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/factory.md","depot_name":".","document_id":"f0604d33-6d6b-f783-d6b5-11384867111b","document_version_independent_id":"2cdbbcb1-87c4-a276-7ac0-13258465cf06","gitcommit":"https://github.com/unitycontainer/documentation/blob/fcf3dc0a8e1438e5b0d980be1f7a8ea83ed2efdc/tutorials/registration/factory.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/factory.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/factory.md","rawTitle":"

Factory Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Factory Registration","uid":"Tutorial.Registration.Factory","updated_at":"2019-03-06 11:21 PM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/instance/index.html b/_site/tutorials/registration/instance/index.html new file mode 100644 index 0000000..ce6e8b6 --- /dev/null +++ b/_site/tutorials/registration/instance/index.html @@ -0,0 +1 @@ +{"content":"\n

Registering instances is useful if you already have an instance of an object that you have previously created and want Unity to manage its lifetime, or if you want Unity to inject that object into other objects that it is resolving.

\n

From container's point of view instance registration is in every way similar to type registration, except that it does not need to create the instance on the first Resolve request. It simply gets the object from lifetime manager and returns it as requested. The LifetimeManager controls the lifetime of the object and disposes it when appropriate.

\n

Registration of an Existing Object Instances

\n

The RegisterInstance method registers an existing instance with the container. You specify the instance type and optional lifetime in the parameter list. The container will return the specified existing instance for the duration of the specified lifetime. Unity container offers several overloads to simplify registration syntax. The simplest instance registration does not require any additional parameters other than instance itself:

\n
var instance = new Service();\n\ncontainer.RegisterInstance(instance);\n
\n

Resolving type Service like this container.Resolve<Service>() will return an instance of the Service object we registered.

\n

Metadata

\n

Instance registration, as any other registration type, supports adding a registration Name. Doing so lets you register multiple instance of the same Type for later retrieval as a collection. Using overload you can write it like this:

\n
container.RegisterInstance("Some Name", instance);\n
\n

Type mapping

\n

Any instance can also be registered as any of the ancestral types or any of the interfaces it implements effectively creating a mapping between these types.

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance);\ncontainer.RegisterInstance<IService>("Some Name", instance);\nor\ncontainer.RegisterInstance(typeof(IService), instance)\ncontainer.RegisterInstance(typeof(IService), "xyz", instance)\n
\n

In this example Unity creates two registrations of type IService. When either is resolved it returns the instance of the Service object we registered with container. For more information see Type Mapping

\n

Lifetime

\n

Due to the fact that container does not create these instances, the instance registration only supports limited number of compatible lifetimes:

\n

Per Container

\n

By default Unity uses Per Container lifetime manager when no manager specified explicitly. So all these examples above will be registered with container scope. Unity will keep these instances referenced and alive until the container is alive. Although it is not necessary to provide container controlled lifetime manager you can still write it like this:

\n
container.RegisterInstance("Some Name", instance, InstanceLifetime.PerContainer);\ncontainer.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.PerContainer);\n
\n

Singleton

\n

Instances can be registered as global singletons by using Singleton lifetime manager:

\n
container.RegisterInstance("Some Name", instance, InstanceLifetime.Singleton);\ncontainer.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.Singleton);\n
\n

These instances will be kept alive until root container is disposed.

\n

External

\n

If Unity is not supposed to control lifetime of the object the External lifetime manager is used:

\n
container.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.External);\n
\n

External lifetime manager is also useful when same instance is registered via multiple interfaces. In this case only one registration should use Per Container or Singleton manager and the rest should be registered with External lifetime manager. This way, when object is disposed, it is not disposed multiple times:

\n
container.RegisterInstance(instance, InstanceLifetime.Singleton);\n\ncontainer.RegisterInstance<IService>(        instance, InstanceLifetime.External);\ncontainer.RegisterInstance<IService>("Name", instance, InstanceLifetime.External);\n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/7/2019","updated_at_date_time":"2019-03-07T05:22:51Z"},"_path":"tutorials/registration/instance/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/registration/instance/","conceptual":"\n

Registering instances is useful if you already have an instance of an object that you have previously created and want Unity to manage its lifetime, or if you want Unity to inject that object into other objects that it is resolving.

\n

From container's point of view instance registration is in every way similar to type registration, except that it does not need to create the instance on the first Resolve request. It simply gets the object from lifetime manager and returns it as requested. The LifetimeManager controls the lifetime of the object and disposes it when appropriate.

\n

Registration of an Existing Object Instances

\n

The RegisterInstance method registers an existing instance with the container. You specify the instance type and optional lifetime in the parameter list. The container will return the specified existing instance for the duration of the specified lifetime. Unity container offers several overloads to simplify registration syntax. The simplest instance registration does not require any additional parameters other than instance itself:

\n
var instance = new Service();\n\ncontainer.RegisterInstance(instance);\n
\n

Resolving type Service like this container.Resolve<Service>() will return an instance of the Service object we registered.

\n

Metadata

\n

Instance registration, as any other registration type, supports adding a registration Name. Doing so lets you register multiple instance of the same Type for later retrieval as a collection. Using overload you can write it like this:

\n
container.RegisterInstance("Some Name", instance);\n
\n

Type mapping

\n

Any instance can also be registered as any of the ancestral types or any of the interfaces it implements effectively creating a mapping between these types.

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance);\ncontainer.RegisterInstance<IService>("Some Name", instance);\nor\ncontainer.RegisterInstance(typeof(IService), instance)\ncontainer.RegisterInstance(typeof(IService), "xyz", instance)\n
\n

In this example Unity creates two registrations of type IService. When either is resolved it returns the instance of the Service object we registered with container. For more information see Type Mapping

\n

Lifetime

\n

Due to the fact that container does not create these instances, the instance registration only supports limited number of compatible lifetimes:

\n

Per Container

\n

By default Unity uses Per Container lifetime manager when no manager specified explicitly. So all these examples above will be registered with container scope. Unity will keep these instances referenced and alive until the container is alive. Although it is not necessary to provide container controlled lifetime manager you can still write it like this:

\n
container.RegisterInstance("Some Name", instance, InstanceLifetime.PerContainer);\ncontainer.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.PerContainer);\n
\n

Singleton

\n

Instances can be registered as global singletons by using Singleton lifetime manager:

\n
container.RegisterInstance("Some Name", instance, InstanceLifetime.Singleton);\ncontainer.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.Singleton);\n
\n

These instances will be kept alive until root container is disposed.

\n

External

\n

If Unity is not supposed to control lifetime of the object the External lifetime manager is used:

\n
container.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.External);\n
\n

External lifetime manager is also useful when same instance is registered via multiple interfaces. In this case only one registration should use Per Container or Singleton manager and the rest should be registered with External lifetime manager. This way, when object is disposed, it is not disposed multiple times:

\n
container.RegisterInstance(instance, InstanceLifetime.Singleton);\n\ncontainer.RegisterInstance<IService>(        instance, InstanceLifetime.External);\ncontainer.RegisterInstance<IService>("Name", instance, InstanceLifetime.External);\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/instance.md","depot_name":".","document_id":"2db4d9db-4837-9463-3cc7-45a8a5227018","document_version_independent_id":"9ecb4aa2-4bbf-0201-0504-07b44db0e1ce","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/instance.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/instance.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/instance.md","rawTitle":"

Instance Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Instance Registration","uid":"Tutorial.Registration.Instance","updated_at":"2019-03-07 05:22 AM","wordCount":499},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/metadata/index.html b/_site/tutorials/registration/metadata/index.html new file mode 100644 index 0000000..309376f --- /dev/null +++ b/_site/tutorials/registration/metadata/index.html @@ -0,0 +1 @@ +{"content":"\n

During registration Unity relies on information you provide to properly register types, instances, and factories. This is a description of metadata you could provide to properly declare how the Type should be registered and built:

\n

Registered Type

\n

A Type that will be requested during resolution is called Registered Type. In the example below SomeType would be a registered type.

\n
container.RegisterType<SomeType>();\n...\nvar value = container.Resolve<SomeType>();\n
\n

Different container authors call this type by different names, FromType, ServiceType, etc. The key point to remember is that this is the Type container will be referencing in the internal registry and will be looking for when executing the resolve.

\n

Name

\n

Each registration must be unique within the scope on a container it is registered with. A registration is identified by two pieces of information: Registered Type and Name.\nAdding the name to registration allows multiple 'instances' of the same type to be registered with the container.

\n

For example, if you register the same service with no name multiple times, each subsequent registration will override the last because in each case you are registering the same type IService with the same name null:

\n
container.RegisterType<IService, Service1>();\ncontainer.RegisterType<IService, Service2>();\ncontainer.RegisterType<IService, Service3>();\n\nvar enumeration = container.Resolve<IEnumerable<IService>>();\nvar count = enumeration.Count();\n
\n

The value of variable count will be 1.

\n

Adding unique names to registrations makes each unique:

\n
container.RegisterType<IService, Service1>("1");\ncontainer.RegisterType<IService, Service2>("2");\ncontainer.RegisterType<IService, Service3>("3");\n\nvar enumeration = container.Resolve<IEnumerable<IService>>();\nvar count = enumeration.Count();\n
\n

In this example the value of variable count will be 3.

\n

Mapped To Type

\n

Sometimes it is also called ToType, ImplementationType, and etc. It describes the type Unity should use to create the instance. Mapped To Type must be descendant of, or it should implement the Registered Type. In other words, it must be assignable to a variable of Registered Type.

\n

This registration member creates a mapping between service and implementation types. In the following example IService is mapped to Service and when Unity container is asked to resolve IService it will, in turn, create an instance of type Service and return it as interface IService.

\n
container.RegisterType<IService, Service>();\n\nvar result = container.Resolve<IService>();\n\nAssert(typeof(Service) == result.GetType())\n
\n

For more information see Type Mapping.

\n

Lifetime Manager

\n

This member holds a reference to a lifetime manager that Unity will be using to manage instance(s) of this type. For more information see Lifetime Management.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"5/15/2019","updated_at_date_time":"2019-05-15T18:34:23Z"},"_path":"tutorials/registration/metadata/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/registration/metadata/","conceptual":"\n

During registration Unity relies on information you provide to properly register types, instances, and factories. This is a description of metadata you could provide to properly declare how the Type should be registered and built:

\n

Registered Type

\n

A Type that will be requested during resolution is called Registered Type. In the example below SomeType would be a registered type.

\n
container.RegisterType<SomeType>();\n...\nvar value = container.Resolve<SomeType>();\n
\n

Different container authors call this type by different names, FromType, ServiceType, etc. The key point to remember is that this is the Type container will be referencing in the internal registry and will be looking for when executing the resolve.

\n

Name

\n

Each registration must be unique within the scope on a container it is registered with. A registration is identified by two pieces of information: Registered Type and Name.\nAdding the name to registration allows multiple 'instances' of the same type to be registered with the container.

\n

For example, if you register the same service with no name multiple times, each subsequent registration will override the last because in each case you are registering the same type IService with the same name null:

\n
container.RegisterType<IService, Service1>();\ncontainer.RegisterType<IService, Service2>();\ncontainer.RegisterType<IService, Service3>();\n\nvar enumeration = container.Resolve<IEnumerable<IService>>();\nvar count = enumeration.Count();\n
\n

The value of variable count will be 1.

\n

Adding unique names to registrations makes each unique:

\n
container.RegisterType<IService, Service1>("1");\ncontainer.RegisterType<IService, Service2>("2");\ncontainer.RegisterType<IService, Service3>("3");\n\nvar enumeration = container.Resolve<IEnumerable<IService>>();\nvar count = enumeration.Count();\n
\n

In this example the value of variable count will be 3.

\n

Mapped To Type

\n

Sometimes it is also called ToType, ImplementationType, and etc. It describes the type Unity should use to create the instance. Mapped To Type must be descendant of, or it should implement the Registered Type. In other words, it must be assignable to a variable of Registered Type.

\n

This registration member creates a mapping between service and implementation types. In the following example IService is mapped to Service and when Unity container is asked to resolve IService it will, in turn, create an instance of type Service and return it as interface IService.

\n
container.RegisterType<IService, Service>();\n\nvar result = container.Resolve<IService>();\n\nAssert(typeof(Service) == result.GetType())\n
\n

For more information see Type Mapping.

\n

Lifetime Manager

\n

This member holds a reference to a lifetime manager that Unity will be using to manage instance(s) of this type. For more information see Lifetime Management.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/metadata.md","depot_name":".","document_id":"fc6c3f44-66b3-f55d-334e-840d9ac78cb1","document_version_independent_id":"f13bf8e3-6b83-d673-6b1f-cc55aa6cff6a","gitcommit":"https://github.com/unitycontainer/documentation/blob/2a5f6d8a2ee72d62253de6ab40494c4d39e00011/tutorials/registration/metadata.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/metadata.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/metadata.md","rawTitle":"

Registration Metadata

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Registration Metadata","uid":"Tutorial.Registration.Metadata","updated_at":"2019-05-15 06:34 PM","wordCount":380},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/registration/index.html b/_site/tutorials/registration/registration/index.html new file mode 100644 index 0000000..cfaf98d --- /dev/null +++ b/_site/tutorials/registration/registration/index.html @@ -0,0 +1 @@ +{"content":"\n

Unity does not require Type to be registered to resolve it.

\n

Any concrete, constructable Type could be resolved by Unity without any prior preparation. It will even create and supply parameters if required. In other words, if you can create a Type with new operator:

\n
var value = new SomeClass(new SomeOtherClass());\n
\n

you can resolve it from Unity:

\n
var value = container.Resolve<SomeClass>();\n
\n

Minimum Registration Requirements

\n

A lot of times, if type does not require any custom steps, it is faster to resolve Type from the container if it is not registered. You should only register a Type if one of the following is required:

\n
    \n
  • Lifetime policy other than transient
  • \n
  • Nondefault constructor should be selected
  • \n
  • Properties or fields not marked with appropriate attributes should be injected
  • \n
  • Method should be called during initialization on the created object
  • \n
  • Mapping between service and implementation types
  • \n
\n

What is a Registration and how it works

\n

Registration is how you control Unity to do it 'Your' way. When you register a Type, you are instructing Unity to create and initialize an instance of that Type in a very particular way. You also instruct Unity how to deal with the crated instance during its lifetime.

\n

Once registration is complete, Unity creates a blueprint of the type factory where it stores implementation details (name, to and from types, etc.), information about what members to inject and how, and lifetime manager responsible for managing the instance.\nAt the later time, when that Type is requested, Unity uses this blueprint to create a pipeline (resolver delegate) to be used to create type.

\n

Each Unity container exposes a collection of available registrations presented as an enumeration of IContainerRegistration objects. This collection could be used to filter and select certain registrations as well as to check if the Type is registered and how.

\n

Different types of registrations

\n

Unity recognizes three different scenarios of how instances and types are created and based on these allows three different types of registrations:

\n

Instances created outside of Unity

\n

A lot of times parts of system's infrastructure require to be available to clients and services of the application. These entities are created and managed outside of the Unity but should be accessible by consumers of the framework during resolution. To enable access to these objects Unity provides a way to register instances. For more information see Instance Registration.

\n

Instances created by Unity using provided Type Factory

\n

Although Unity is quite capable in creating instances of types, sometimes it is more efficient or desireable to use Type factories. Unity provides API to register a special factory delegate. For more information see Factory Registration

\n

Instances created by Unity

\n

This is the most common scenario where objects are created by the container itself. Creation process is controlled by either Type registrations associated with the container or implicit Unity defaults if none registered. For more information how Type can be registered seeType Registration

\n

Container Hierarchies

\n

Unity container provides a way to create child containers (also referred as creating scopes) and allows building sophisticated hierarchical trees of registrations. There are just a few simple rules to follow when dealing with container hierarchies. For more information see Container Hierarchy

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/11/2019","updated_at_date_time":"2019-03-11T00:32:39Z"},"_path":"tutorials/registration/registration/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/registration/registration/","conceptual":"\n

Unity does not require Type to be registered to resolve it.

\n

Any concrete, constructable Type could be resolved by Unity without any prior preparation. It will even create and supply parameters if required. In other words, if you can create a Type with new operator:

\n
var value = new SomeClass(new SomeOtherClass());\n
\n

you can resolve it from Unity:

\n
var value = container.Resolve<SomeClass>();\n
\n

Minimum Registration Requirements

\n

A lot of times, if type does not require any custom steps, it is faster to resolve Type from the container if it is not registered. You should only register a Type if one of the following is required:

\n
    \n
  • Lifetime policy other than transient
  • \n
  • Nondefault constructor should be selected
  • \n
  • Properties or fields not marked with appropriate attributes should be injected
  • \n
  • Method should be called during initialization on the created object
  • \n
  • Mapping between service and implementation types
  • \n
\n

What is a Registration and how it works

\n

Registration is how you control Unity to do it 'Your' way. When you register a Type, you are instructing Unity to create and initialize an instance of that Type in a very particular way. You also instruct Unity how to deal with the crated instance during its lifetime.

\n

Once registration is complete, Unity creates a blueprint of the type factory where it stores implementation details (name, to and from types, etc.), information about what members to inject and how, and lifetime manager responsible for managing the instance.\nAt the later time, when that Type is requested, Unity uses this blueprint to create a pipeline (resolver delegate) to be used to create type.

\n

Each Unity container exposes a collection of available registrations presented as an enumeration of IContainerRegistration objects. This collection could be used to filter and select certain registrations as well as to check if the Type is registered and how.

\n

Different types of registrations

\n

Unity recognizes three different scenarios of how instances and types are created and based on these allows three different types of registrations:

\n

Instances created outside of Unity

\n

A lot of times parts of system's infrastructure require to be available to clients and services of the application. These entities are created and managed outside of the Unity but should be accessible by consumers of the framework during resolution. To enable access to these objects Unity provides a way to register instances. For more information see Instance Registration.

\n

Instances created by Unity using provided Type Factory

\n

Although Unity is quite capable in creating instances of types, sometimes it is more efficient or desireable to use Type factories. Unity provides API to register a special factory delegate. For more information see Factory Registration

\n

Instances created by Unity

\n

This is the most common scenario where objects are created by the container itself. Creation process is controlled by either Type registrations associated with the container or implicit Unity defaults if none registered. For more information how Type can be registered seeType Registration

\n

Container Hierarchies

\n

Unity container provides a way to create child containers (also referred as creating scopes) and allows building sophisticated hierarchical trees of registrations. There are just a few simple rules to follow when dealing with container hierarchies. For more information see Container Hierarchy

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/registration.md","depot_name":".","document_id":"155f0237-7c9a-c764-d36c-ce050328f35d","document_version_independent_id":"9690b687-88ba-a4a2-ef60-1c2cf2353e9f","gitcommit":"https://github.com/unitycontainer/documentation/blob/a17b17619ae5cf4fc682ced9bb9eddc392311e26/tutorials/registration/registration.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/registration.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/registration.md","rawTitle":"

Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Registration","uid":"Tutorial.Registration","updated_at":"2019-03-11 12:32 AM","wordCount":525},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/constructor/annotation/index.html b/_site/tutorials/registration/type/constructor/annotation/index.html new file mode 100644 index 0000000..fdb7ba1 --- /dev/null +++ b/_site/tutorials/registration/type/constructor/annotation/index.html @@ -0,0 +1 @@ +{"content":"\n

To select constructors you create through the Unity container, you can use the following three techniques:

\n\n

Annotated Constructor Injection

\n

Constructor Injection with Attribute Annotation allows you to apply attributes to the class' constructor designating it for dependency injection. When creating the class, Unity will always (unless explicitly overwritten in Registration) use that constructor. You only need to use this technique when there is more than one constructor in the target type.

\n

Annotating a Constructor

\n

When a target class contains more than one constructor and the automatic algorithm does not provide desired selection, you may use the InjectionConstructor attribute to specify the constructor you wish to use for injection.

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this example type Service contains four public constructors. Three of these constructors have one parameter each. A Type like this creates an ambiguity that Unity could not resolve by itself.

\n
\n
WARNING
\n

During resolution, the container will pick the first constructor it could satisfy with dependencies and will use it. In the example above, it could be any of the three constructors with one parameter.

\n
\n

The container is not trying to validate all available contractors during normal execution.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructors.

\n
\n

Normally, Unity would select the third constructor with three parameters, but by annotating the second constructor with the attribute you force Unity to use it during resolution.

\n

Multiple Constructor Annotations

\n

Annotating multiple constructors with injection parameters is not recommended. Unity is not guaranteed to process constructors in certain order. If multiple constructors are annotated, behavior might change from version to version.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructor annotations.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/10/2019","updated_at_date_time":"2019-03-10T20:00:03Z"},"_path":"tutorials/registration/type/constructor/annotation/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/constructor/annotation/","conceptual":"\n

To select constructors you create through the Unity container, you can use the following three techniques:

\n\n

Annotated Constructor Injection

\n

Constructor Injection with Attribute Annotation allows you to apply attributes to the class' constructor designating it for dependency injection. When creating the class, Unity will always (unless explicitly overwritten in Registration) use that constructor. You only need to use this technique when there is more than one constructor in the target type.

\n

Annotating a Constructor

\n

When a target class contains more than one constructor and the automatic algorithm does not provide desired selection, you may use the InjectionConstructor attribute to specify the constructor you wish to use for injection.

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this example type Service contains four public constructors. Three of these constructors have one parameter each. A Type like this creates an ambiguity that Unity could not resolve by itself.

\n
\n
WARNING
\n

During resolution, the container will pick the first constructor it could satisfy with dependencies and will use it. In the example above, it could be any of the three constructors with one parameter.

\n
\n

The container is not trying to validate all available contractors during normal execution.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructors.

\n
\n

Normally, Unity would select the third constructor with three parameters, but by annotating the second constructor with the attribute you force Unity to use it during resolution.

\n

Multiple Constructor Annotations

\n

Annotating multiple constructors with injection parameters is not recommended. Unity is not guaranteed to process constructors in certain order. If multiple constructors are annotated, behavior might change from version to version.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructor annotations.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/annotation.md","depot_name":".","document_id":"bccfb7ef-9055-d8bb-1199-c150fefc32b1","document_version_independent_id":"ab8a87e3-5b14-9e99-2f2a-60bdaac3187d","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/annotation.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/annotation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/annotation.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor By Attribute Annotation","uid":"Tutorial.Injection.Constructor.Annotation","updated_at":"2019-03-10 08:00 PM","wordCount":409},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/constructor/automatic/index.html b/_site/tutorials/registration/type/constructor/automatic/index.html new file mode 100644 index 0000000..df383c1 --- /dev/null +++ b/_site/tutorials/registration/type/constructor/automatic/index.html @@ -0,0 +1 @@ +{"content":"\n

Proper selection of the constructor used for type instantiation is one of the most important aspects of the container operation. When creating an object, the container uses one of the following algorithms to select a constructor it will be using to initialize the object:

\n\n

Automatic Constructor Selection

\n

Automatic constructor selection is performed if no other information is available on how to create a Type. Unity uses dynamic, real time algorithm to discover and select a constructor.

\n

The Unity container will try to execute the most complex constructor it can provide with appropriate dependencies. In other words, if the container can resolve and/or inject all parameters of the constructor, it will be selected.

\n

Creating Build Pipeline

\n

Selection process takes place during the first resolution of a Type contract. Unity container employs lazy resolution strategy. It will defer pipeline creation until the contract (RegistrationType and Name) is requested.

\n

The lazy approach allows registrations to proceed at random order and do not require dependencies to be registered before dependents. As long as all of these are available at the time of resolution Unity does not care in what order they were registered.

\n

Constructor Selection Steps

\n

One of the first steps, when creating a pipeline, is a constructor selection. Constructors are selected in the following order:

\n
    \n
  • If present, use registered Injection Constructor
  • \n
  • If present, annotated with an attribute
  • \n
  • Automatically select constructor\n
      \n
    • Get all accessible constructors
    • \n
    • Process constructors in ascending order from most complex to the default\n
        \n
      • Filter out restricted constructors
      • \n
      • Loop through parameters and check if\n
          \n
        • Is primitive\n
            \n
          • Is registered with the container
          • \n
          • Has default value
          • \n
          \n
        • \n
        • Is resolvable type
        • \n
        • Is registered with container
        • \n
        \n
      • \n
      • Select the first constructor the container can create
      • \n
      \n
    • \n
    \n
  • \n
\n

The Unity container will select the first successful match and use it as a selection.

\n
\n
WARNING
\n

When more than one constructor could be matched at the same time, the order and constructor selection can not be guaranteed.

\n
\n

During normal operation the container does not perform validation.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will perform a selection validation and will throw an exception, reporting ambiguous constructors, if more than one constructor can be successfully selected with current configuration.

\n
\n

If no constructor could be selected, the container will throw an exception.

\n

Pipeline retention

\n

Once the pipeline is created, it will be used to satisfy all subsequent requests for that contract. If you need to update or rebuild the pipeline, the contract has to be re-registered.

\n\n

See Also:

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/registration/type/constructor/automatic/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/constructor/automatic/","conceptual":"\n

Proper selection of the constructor used for type instantiation is one of the most important aspects of the container operation. When creating an object, the container uses one of the following algorithms to select a constructor it will be using to initialize the object:

\n\n

Automatic Constructor Selection

\n

Automatic constructor selection is performed if no other information is available on how to create a Type. Unity uses dynamic, real time algorithm to discover and select a constructor.

\n

The Unity container will try to execute the most complex constructor it can provide with appropriate dependencies. In other words, if the container can resolve and/or inject all parameters of the constructor, it will be selected.

\n

Creating Build Pipeline

\n

Selection process takes place during the first resolution of a Type contract. Unity container employs lazy resolution strategy. It will defer pipeline creation until the contract (RegistrationType and Name) is requested.

\n

The lazy approach allows registrations to proceed at random order and do not require dependencies to be registered before dependents. As long as all of these are available at the time of resolution Unity does not care in what order they were registered.

\n

Constructor Selection Steps

\n

One of the first steps, when creating a pipeline, is a constructor selection. Constructors are selected in the following order:

\n
    \n
  • If present, use registered Injection Constructor
  • \n
  • If present, annotated with an attribute
  • \n
  • Automatically select constructor\n
      \n
    • Get all accessible constructors
    • \n
    • Process constructors in ascending order from most complex to the default\n
        \n
      • Filter out restricted constructors
      • \n
      • Loop through parameters and check if\n
          \n
        • Is primitive\n
            \n
          • Is registered with the container
          • \n
          • Has default value
          • \n
          \n
        • \n
        • Is resolvable type
        • \n
        • Is registered with container
        • \n
        \n
      • \n
      • Select the first constructor the container can create
      • \n
      \n
    • \n
    \n
  • \n
\n

The Unity container will select the first successful match and use it as a selection.

\n
\n
WARNING
\n

When more than one constructor could be matched at the same time, the order and constructor selection can not be guaranteed.

\n
\n

During normal operation the container does not perform validation.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will perform a selection validation and will throw an exception, reporting ambiguous constructors, if more than one constructor can be successfully selected with current configuration.

\n
\n

If no constructor could be selected, the container will throw an exception.

\n

Pipeline retention

\n

Once the pipeline is created, it will be used to satisfy all subsequent requests for that contract. If you need to update or rebuild the pipeline, the contract has to be re-registered.

\n\n

See Also:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/automatic.md","depot_name":".","document_id":"c1e7c148-cf93-2de0-cc54-32701d701632","document_version_independent_id":"eca76e28-a114-ec13-d320-563b416d21f4","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/registration/Type/Constructor/automatic.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/automatic.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/automatic.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Automatic Constructor Injection","uid":"Tutorial.Injection.Constructor.Implicit","updated_at":"2019-04-30 12:00 AM","wordCount":513},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/constructor/constructor/index.html b/_site/tutorials/registration/type/constructor/constructor/index.html new file mode 100644 index 0000000..71c055f --- /dev/null +++ b/_site/tutorials/registration/type/constructor/constructor/index.html @@ -0,0 +1 @@ +{"content":"\n

Constructor Injection is a process where Unity selects a constructor, resolves parameter dependencies, and executes the constructor by injecting it with resolved or injected dependencies.

\n

Restrictions

\n

Unity can be configured to execute any accessible constructor with the following exceptions:

\n
    \n
  • static constructors are not supported
  • \n
  • private and protected constructors are not accessible
  • \n
  • Constructors with ref and out parameters are not supported
  • \n
\n

Selection Methods

\n

Selecting a constructor is one of the first steps in creating a resolution pipeline. Unity supports the following selection methods:

\n

Automatic Selection

\n

Automatic Selection is a default method of selecting constructors. It will be used if no constructor is injected or annotated.

\n

By default Unity uses 'smart' algorithm to select constructor. It sorts all accessible constructors by number of parameters in ascending order and goes from most complex to the default, checking if it can satisfy its parameters. The container selects the first constructor it can create and executes it.

\n
\n
WARNING
\n

Unity will not check for ambiguities unless Diagnostic extension is installed.

\n
\n
\n
TIP
\n

Legacy selection algorithm which selects the most complex constructor could be enabled by installing Legacy extension. It will replace and disable 'smart' selection.

\n
\n

Constructor Annotation

\n

Constructor annotated with InjectionConstructor attribute overrides automatic selection. For more information see Annotating Type for Constructor Injection

\n

Constructor injection

\n

Constructor configuration registered for the Type has highest priority. It will override other selection methods and will always execute the configured constructor.

\n

As opposed to methods, constructors do not have a name to distinguish one from the other. The only difference between constructors is number and Type of parameters they take. Because of that constructor selection is based solely on parameters and its types.

\n

Invoking the Constructor

\n

Invoked constructor and injection of its parameters is configured by registering the Type with the InjectionConstructor. Creating the InjectionConstructor with proper injection members or values determines what constructor is selected and how parameters are initialized. Values and resolvers added to InjectionConstructor will be used to initialize parameters of the constructor of the Type. The following aspects could be configured:

\n
    \n
  • Parameter Type
  • \n
  • Force resolution of parameter
  • \n
  • Specify the Contract/Registration Name to by used when resolving
  • \n
  • Provide a Resolver for the parameter
  • \n
  • Provide value
  • \n
\n
\n
TIP
\n

As alternative, helper Invoke.Constructor(...) can be used to configure invoked constructor.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/registration/type/constructor/constructor/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/constructor/constructor/","conceptual":"\n

Constructor Injection is a process where Unity selects a constructor, resolves parameter dependencies, and executes the constructor by injecting it with resolved or injected dependencies.

\n

Restrictions

\n

Unity can be configured to execute any accessible constructor with the following exceptions:

\n
    \n
  • static constructors are not supported
  • \n
  • private and protected constructors are not accessible
  • \n
  • Constructors with ref and out parameters are not supported
  • \n
\n

Selection Methods

\n

Selecting a constructor is one of the first steps in creating a resolution pipeline. Unity supports the following selection methods:

\n

Automatic Selection

\n

Automatic Selection is a default method of selecting constructors. It will be used if no constructor is injected or annotated.

\n

By default Unity uses 'smart' algorithm to select constructor. It sorts all accessible constructors by number of parameters in ascending order and goes from most complex to the default, checking if it can satisfy its parameters. The container selects the first constructor it can create and executes it.

\n
\n
WARNING
\n

Unity will not check for ambiguities unless Diagnostic extension is installed.

\n
\n
\n
TIP
\n

Legacy selection algorithm which selects the most complex constructor could be enabled by installing Legacy extension. It will replace and disable 'smart' selection.

\n
\n

Constructor Annotation

\n

Constructor annotated with InjectionConstructor attribute overrides automatic selection. For more information see Annotating Type for Constructor Injection

\n

Constructor injection

\n

Constructor configuration registered for the Type has highest priority. It will override other selection methods and will always execute the configured constructor.

\n

As opposed to methods, constructors do not have a name to distinguish one from the other. The only difference between constructors is number and Type of parameters they take. Because of that constructor selection is based solely on parameters and its types.

\n

Invoking the Constructor

\n

Invoked constructor and injection of its parameters is configured by registering the Type with the InjectionConstructor. Creating the InjectionConstructor with proper injection members or values determines what constructor is selected and how parameters are initialized. Values and resolvers added to InjectionConstructor will be used to initialize parameters of the constructor of the Type. The following aspects could be configured:

\n
    \n
  • Parameter Type
  • \n
  • Force resolution of parameter
  • \n
  • Specify the Contract/Registration Name to by used when resolving
  • \n
  • Provide a Resolver for the parameter
  • \n
  • Provide value
  • \n
\n
\n
TIP
\n

As alternative, helper Invoke.Constructor(...) can be used to configure invoked constructor.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/constructor.md","depot_name":".","document_id":"3d0b4d82-1433-301e-4a5a-ca84297b7a66","document_version_independent_id":"2187b1df-e919-dcb8-3c5d-9436f9b6eb4b","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/registration/Type/Constructor/constructor.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/constructor.md","rawTitle":"

Constructor Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Constructor Injection","uid":"Tutorial.Injection.Constructor","updated_at":"2019-04-05 01:56 AM","wordCount":396},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/constructor/param_count/index.html b/_site/tutorials/registration/type/constructor/param_count/index.html new file mode 100644 index 0000000..473a243 --- /dev/null +++ b/_site/tutorials/registration/type/constructor/param_count/index.html @@ -0,0 +1 @@ +{"content":"\n

By Number of Parameters

\n

Selecting constructor by number of parameters is the simplest form of selection. You could use this selection method if the constructor you invoking has unique number of parameters.

\n

Type of Parameter as Contract Type

\n

This method is useful when you are working on a Type that takes certain number of parameters but you don't care what these parameter types are.

\n

Parameters

\n

In a case like this you could use Resolve.Parameter() to specify that you want a parameter at this position to be resolved. For example, consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

It has several constructors with different number of parameters each. Normally, the container would try to run the most complex constructor, but if you want to invoke the one with just a single parameter you need to register it like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this registration you configure the container to invoke a constructor that takes just one parameter. The parameter is resolved using a contract with a type of the parameter and no name.

\n

Now if you resolve the type, the container will invoke that constructor and inject the parameter:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Generic Parameters

\n

The same method as above, could be used to invoke constructors with generic parameters. Consider the following class:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

To configure the container to invoke the first constructor you would execute the same code with exception of how you pass in a type of the contract. Registration of an open generic requires a conventional method call:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

When resolved, the container will invoke the first constructor and inject it with created instance of Object:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Parameter dependencies with Contract Name

\n

When configuring constructors with the method described above you should be mindful of parameter annotations and contract names these annotations might provide.

\n

When implicitly injecting a parameter, the container will recognize all metadata the parameter is annotated with and will properly inject it with correct contract. When you add an InjectionMember to configure the parameter you override all these annotations.

\n

If you look at the second constructor of SampleType<T> you will notice that the first parameter is marked with Dependency attribute. Normally, when resolving that parameter, Unity will, if present, use Name of the Contract the attribute provides. But when you register it as in the following example, you will override that contract:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

When resolved, Unity will execute the constructor but instead of dependency with contract name one it will use contract with no name.

\n

If you need to, you could override contract name explicitly as in the following example:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

If you'd like to preserve contracts from annotations, you need to use one of the following selection methods instead.

\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/10/2019","updated_at_date_time":"2019-03-10T20:00:03Z"},"_path":"tutorials/registration/type/constructor/param_count/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_count/","conceptual":"\n

By Number of Parameters

\n

Selecting constructor by number of parameters is the simplest form of selection. You could use this selection method if the constructor you invoking has unique number of parameters.

\n

Type of Parameter as Contract Type

\n

This method is useful when you are working on a Type that takes certain number of parameters but you don't care what these parameter types are.

\n

Parameters

\n

In a case like this you could use Resolve.Parameter() to specify that you want a parameter at this position to be resolved. For example, consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

It has several constructors with different number of parameters each. Normally, the container would try to run the most complex constructor, but if you want to invoke the one with just a single parameter you need to register it like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this registration you configure the container to invoke a constructor that takes just one parameter. The parameter is resolved using a contract with a type of the parameter and no name.

\n

Now if you resolve the type, the container will invoke that constructor and inject the parameter:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Generic Parameters

\n

The same method as above, could be used to invoke constructors with generic parameters. Consider the following class:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

To configure the container to invoke the first constructor you would execute the same code with exception of how you pass in a type of the contract. Registration of an open generic requires a conventional method call:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

When resolved, the container will invoke the first constructor and inject it with created instance of Object:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Parameter dependencies with Contract Name

\n

When configuring constructors with the method described above you should be mindful of parameter annotations and contract names these annotations might provide.

\n

When implicitly injecting a parameter, the container will recognize all metadata the parameter is annotated with and will properly inject it with correct contract. When you add an InjectionMember to configure the parameter you override all these annotations.

\n

If you look at the second constructor of SampleType<T> you will notice that the first parameter is marked with Dependency attribute. Normally, when resolving that parameter, Unity will, if present, use Name of the Contract the attribute provides. But when you register it as in the following example, you will override that contract:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

When resolved, Unity will execute the constructor but instead of dependency with contract name one it will use contract with no name.

\n

If you need to, you could override contract name explicitly as in the following example:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

If you'd like to preserve contracts from annotations, you need to use one of the following selection methods instead.

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_count.md","depot_name":".","document_id":"f933f186-0833-8a03-bf07-0a52c0085a6b","document_version_independent_id":"12c8b824-4e4b-7d3e-eb49-04960e9f8ba3","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/param_count.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_count.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_count.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor By Number of Parameters","uid":"Tutorial.Injection.Constructor.Count","updated_at":"2019-03-10 08:00 PM","wordCount":555},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/constructor/param_none/index.html b/_site/tutorials/registration/type/constructor/param_none/index.html new file mode 100644 index 0000000..2237156 --- /dev/null +++ b/_site/tutorials/registration/type/constructor/param_none/index.html @@ -0,0 +1 @@ +{"content":"\n

A Default called a constructor with no parameters. It could be explicitly defined on a Type or if Type has no defined constructors, C# will implicitly create one for you.

\n

Invoking Default Constructor

\n

To configure resolution of a Type with a default constructor you need to register that Type with Injection Constructor Member which takes no parameters.

\n

Class Service

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Class Service is a plain type with three accessible constructors. First constructor is a default constructor with no parameters, second and third constructors take one parameter each.

\n

Registering Service

\n

If you try to resolve this class with no registration, Unity will select one of the constructors with parameter. You can not guarantee which one it will select because both have the same number of parameters and each could be satisfied with dependencies.

\n
\n
TIP
\n

If Diagnostic is enabled, it will throw an ambiguous constructor exception.

\n
\n

To prevent ambiguity, or if you need to execute default constructor, you can register this Type and instruct the container to invoke default constructor during resolution. In simplest form this registration will look like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n
\n
NOTE
\n

Of corse you could add other instructions like mapping, name, etc. to the registration but for simplicity it is omitted in this example.

\n
\n

Resolving Service

\n

Once you register the Service with the container, you can resolve it normally:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

At first resolution the container will create a pipeline which invokes a default constructor to create the Service and will be using it for all subsequent resolutions.

\n

Default Generic Constructor

\n

Unity can register and create Generic types. It allows to register Closed and Open Generics and can resolve constructed types based on these.

\n

Class Service<T>

\n

The principle for registering of default constructor is exactly the same as for plain types. Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Class Service<T> is an open generic type with two constructors. First constructor is a default constructor with no parameters and second takes one parameter.

\n

Registering Service<T>

\n

Normally, Unity will create this Type by executing most complex constructor. To force Unity to use default constructor you need to register Service<T> and instruct the container to invoke it during resolution. You can register constructed generic based on Service<T> like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Or you can register Open Generic Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Resolving Service<T>

\n

If you resolve Service<object>:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

either registration will invoke the default constructor.

\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/registration/type/constructor/param_none/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_none/","conceptual":"\n

A Default called a constructor with no parameters. It could be explicitly defined on a Type or if Type has no defined constructors, C# will implicitly create one for you.

\n

Invoking Default Constructor

\n

To configure resolution of a Type with a default constructor you need to register that Type with Injection Constructor Member which takes no parameters.

\n

Class Service

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Class Service is a plain type with three accessible constructors. First constructor is a default constructor with no parameters, second and third constructors take one parameter each.

\n

Registering Service

\n

If you try to resolve this class with no registration, Unity will select one of the constructors with parameter. You can not guarantee which one it will select because both have the same number of parameters and each could be satisfied with dependencies.

\n
\n
TIP
\n

If Diagnostic is enabled, it will throw an ambiguous constructor exception.

\n
\n

To prevent ambiguity, or if you need to execute default constructor, you can register this Type and instruct the container to invoke default constructor during resolution. In simplest form this registration will look like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n
\n
NOTE
\n

Of corse you could add other instructions like mapping, name, etc. to the registration but for simplicity it is omitted in this example.

\n
\n

Resolving Service

\n

Once you register the Service with the container, you can resolve it normally:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

At first resolution the container will create a pipeline which invokes a default constructor to create the Service and will be using it for all subsequent resolutions.

\n

Default Generic Constructor

\n

Unity can register and create Generic types. It allows to register Closed and Open Generics and can resolve constructed types based on these.

\n

Class Service<T>

\n

The principle for registering of default constructor is exactly the same as for plain types. Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Class Service<T> is an open generic type with two constructors. First constructor is a default constructor with no parameters and second takes one parameter.

\n

Registering Service<T>

\n

Normally, Unity will create this Type by executing most complex constructor. To force Unity to use default constructor you need to register Service<T> and instruct the container to invoke it during resolution. You can register constructed generic based on Service<T> like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Or you can register Open Generic Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Resolving Service<T>

\n

If you resolve Service<object>:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

either registration will invoke the default constructor.

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_none.md","depot_name":".","document_id":"44080f41-8f6d-eb44-2550-bf960bb69e34","document_version_independent_id":"d1683f3a-6ff8-ac65-c68d-8171d54657d8","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/registration/Type/Constructor/param_none.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_none.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_none.md","rawTitle":"

Default Constructors

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Default Constructor","uid":"Tutorial.Injection.Constructor.Default","updated_at":"2019-04-05 01:56 AM","wordCount":497},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/constructor/param_types/index.html b/_site/tutorials/registration/type/constructor/param_types/index.html new file mode 100644 index 0000000..b93658a --- /dev/null +++ b/_site/tutorials/registration/type/constructor/param_types/index.html @@ -0,0 +1 @@ +{"content":"\n

Select Constructor by Parameter types

\n

Exact Match

\n

Compatible Type Match

\n

Contracts with Name

\n

Type Matching exactly

\n

Compatible Implementation

\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/10/2019","updated_at_date_time":"2019-03-10T20:00:03Z"},"_path":"tutorials/registration/type/constructor/param_types/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_types/","conceptual":"\n

Select Constructor by Parameter types

\n

Exact Match

\n

Compatible Type Match

\n

Contracts with Name

\n

Type Matching exactly

\n

Compatible Implementation

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_types.md","depot_name":".","document_id":"a43b0380-00c5-f9f0-13a0-bcd8dfecb41b","document_version_independent_id":"cbce70bb-3d73-b545-7ca7-bfc6f0fed947","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/param_types.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_types.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_types.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor by Parameter Types","uid":"Tutorial.Injection.Constructor.Types","updated_at":"2019-03-10 08:00 PM","wordCount":39},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/constructor/param_values/index.html b/_site/tutorials/registration/type/constructor/param_values/index.html new file mode 100644 index 0000000..e99f4a3 --- /dev/null +++ b/_site/tutorials/registration/type/constructor/param_values/index.html @@ -0,0 +1 @@ +{"content":"\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/10/2019","updated_at_date_time":"2019-03-10T20:00:03Z"},"_path":"tutorials/registration/type/constructor/param_values/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_values/","conceptual":"\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_values.md","depot_name":".","document_id":"cd589f0b-bc03-758c-0d5f-b570dc451473","document_version_independent_id":"a6cf7331-25f9-4155-a93b-1b9b1d859246","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/param_values.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_values.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_values.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor by Parameter Values","uid":"Tutorial.Injection.Constructor.Values","updated_at":"2019-03-10 08:00 PM","wordCount":20},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/field/index.html b/_site/tutorials/registration/type/field/index.html new file mode 100644 index 0000000..6d9451d --- /dev/null +++ b/_site/tutorials/registration/type/field/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/7/2019","updated_at_date_time":"2019-03-07T05:22:51Z"},"_path":"tutorials/registration/type/field/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/field/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/field.md","depot_name":".","document_id":"c2a3677e-e25a-23fc-1d1d-afcf1cae5b9c","document_version_independent_id":"21bedaea-483b-16e5-6828-da96ffd1aa89","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/field.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/field.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/field.md","rawTitle":"

Field Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Field Injection","uid":"Tutorial.Injection.Field","updated_at":"2019-03-07 05:22 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/injection/default/index.html b/_site/tutorials/registration/type/injection/default/index.html new file mode 100644 index 0000000..bacc7ac --- /dev/null +++ b/_site/tutorials/registration/type/injection/default/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/11/2019","updated_at_date_time":"2019-03-11T01:08:46Z"},"_path":"tutorials/registration/type/injection/default/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/injection/default/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/default.md","depot_name":".","document_id":"f0ac9ade-1043-129a-d73a-91953ac7b231","document_version_independent_id":"14895510-22b9-f067-0a3b-42bb0235c831","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/default.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/default.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/default.md","rawTitle":"

Support for Default Values

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Support for Default Values","uid":"Tutorial.Injection.Default","updated_at":"2019-03-11 01:08 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/injection/injected/index.html b/_site/tutorials/registration/type/injection/injected/index.html new file mode 100644 index 0000000..5bfa055 --- /dev/null +++ b/_site/tutorials/registration/type/injection/injected/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/11/2019","updated_at_date_time":"2019-03-11T01:08:46Z"},"_path":"tutorials/registration/type/injection/injected/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/injection/injected/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injected.md","depot_name":".","document_id":"32c573ec-454c-caaa-9c9c-3888e8929b0d","document_version_independent_id":"a328b057-ba1f-20ac-e60a-04ea7bebc1bf","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/injected.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injected.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/injected.md","rawTitle":"

Injecting Dependency Values

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Injecting Dependency Values","uid":"Tutorial.Injection.Injected","updated_at":"2019-03-11 01:08 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/injection/injection/index.html b/_site/tutorials/registration/type/injection/injection/index.html new file mode 100644 index 0000000..3ce5561 --- /dev/null +++ b/_site/tutorials/registration/type/injection/injection/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/11/2019","updated_at_date_time":"2019-03-11T01:08:46Z"},"_path":"tutorials/registration/type/injection/injection/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/injection/injection/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injection.md","depot_name":".","document_id":"22387587-d7a8-4e6a-654c-d8728d074653","document_version_independent_id":"09bc78cd-f176-4aaa-41cd-119e51ab8aca","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/injection.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injection.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/injection.md","rawTitle":"

Dependency Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Dependency Injection","uid":"Tutorial.Injection","updated_at":"2019-03-11 01:08 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/injection/resolved/index.html b/_site/tutorials/registration/type/injection/resolved/index.html new file mode 100644 index 0000000..40d481f --- /dev/null +++ b/_site/tutorials/registration/type/injection/resolved/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/11/2019","updated_at_date_time":"2019-03-11T01:08:46Z"},"_path":"tutorials/registration/type/injection/resolved/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/injection/resolved/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/resolved.md","depot_name":".","document_id":"17dac8cb-7105-cb4b-9341-a478df7a564e","document_version_independent_id":"4afe44d5-4340-acd2-3533-c8fe0984dbcb","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/resolved.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/resolved.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/resolved.md","rawTitle":"

Resolving Dependency Values

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Resolving Dependency Values","uid":"Tutorial.Injection.Resolved","updated_at":"2019-03-11 01:08 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/method/index.html b/_site/tutorials/registration/type/method/index.html new file mode 100644 index 0000000..600aa23 --- /dev/null +++ b/_site/tutorials/registration/type/method/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/7/2019","updated_at_date_time":"2019-03-07T05:22:51Z"},"_path":"tutorials/registration/type/method/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/method/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/method.md","depot_name":".","document_id":"ece87da2-2138-25a2-4b62-f09b94f500d9","document_version_independent_id":"df634c41-a696-a56e-3edb-6be9079a6660","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/method.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/method.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/method.md","rawTitle":"

Method Invocation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Method Injection","uid":"Tutorial.Injection.Method","updated_at":"2019-03-07 05:22 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/parameter/index.html b/_site/tutorials/registration/type/parameter/index.html new file mode 100644 index 0000000..f67fd51 --- /dev/null +++ b/_site/tutorials/registration/type/parameter/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/7/2019","updated_at_date_time":"2019-03-07T05:22:51Z"},"_path":"tutorials/registration/type/parameter/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/parameter/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/parameter.md","depot_name":".","document_id":"cb8b1b59-03db-0e46-fead-1d5d5a92812f","document_version_independent_id":"a8fc56d0-58e8-03ea-b38f-ad68a88818c2","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/parameter.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/parameter.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/parameter.md","rawTitle":"

Parameter Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Parameter Injection","uid":"Tutorial.Injection.Parameter","updated_at":"2019-03-07 05:22 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/property/index.html b/_site/tutorials/registration/type/property/index.html new file mode 100644 index 0000000..3f54972 --- /dev/null +++ b/_site/tutorials/registration/type/property/index.html @@ -0,0 +1 @@ +{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/7/2019","updated_at_date_time":"2019-03-07T05:22:51Z"},"_path":"tutorials/registration/type/property/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/property/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/property.md","depot_name":".","document_id":"e1fdee6b-4cc3-4110-4ed7-a825595503d1","document_version_independent_id":"d1d79004-065d-bfbf-d2b1-f3c2a6da14df","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/property.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/property.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/property.md","rawTitle":"

Property Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Injection","uid":"Tutorial.Injection.Property","updated_at":"2019-03-07 05:22 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/registration/index.html b/_site/tutorials/registration/type/registration/index.html new file mode 100644 index 0000000..d72a60c --- /dev/null +++ b/_site/tutorials/registration/type/registration/index.html @@ -0,0 +1 @@ +{"content":"\n

Type registration is where all the Unity magic is happening. It provides complete and flexible control of all aspects of type creation and management.

\n

When a Type is registered Unity creates a contract (a registration) consisting of a Type, a Name, and instructions on how this contract should be fulfilled when requested.

\n

Minimum Registration Requirements

\n

The only required part of the registration is a registered Type itself. Theoretically you could register a Type like this:

\n
container.RegisterType<Service>();\n
\n

This would tell the container to use all defaults when creating Service. Registrations like this do not make much sense. If creation process does not require any customization, all that time spent on registering such Type is wasted. It is measurably faster to resolve a plain Type from the container if it is not registered at all.

\n

When a Type is annotated with injection attributes it does not require registration either. If you are satisfied with annotated selections, appropriate constructor and all other members are annotated, and you do not require lifetime management for created instances, the Type should not be registered.

\n

You should only register types if at least one of the following is true:

\n
    \n
  • Contract/Registration requires a Name
  • \n
  • Require a mapping between service and implementation types
  • \n
  • Require lifetime policy other than transient
  • \n
  • Need to override injection annotated with attribute(s)
  • \n
  • Nondefault constructor should be selected
  • \n
  • Properties or fields should be injected
  • \n
  • Method(s) should be called during initialization
  • \n
\n

Creating Registration Contracts

\n

Simplest form of a contract is a registration without a Name ( the Name is null ). This type of registration is called default and in some cases is used as a prototype during resolution of Generic types (hence name default).

\n

A contract could have a Name. The Name could be any arbitrary string of one or more characters. The simple named contract could be registered like this:

\n
container.RegisterType<Service>("Contract Name");\n
\n
\n
NOTE
\n

It is not recommended to use empty strings as names.

\n
\n

Creating Type Mapping

\n

A mapping instructs Unity on how to satisfy the contract and what implementation Type should be used to create an object. For example is you want to associate an interface IService with implementation Service you would register it like this:

\n
container.RegisterType<IService, Service>();\n
\n

Or you could register multiple implementations for the same service:

\n
container.RegisterType<IService, MailService>("Email");\ncontainer.RegisterType<IService, WebService>("WebMail");\ncontainer.RegisterType<IService, SecureService>("Encrypted");\n
\n

For more information see <xref:Tutorial.Registration.Mapping>

\n

Lifetime Management

\n

Unity provides wide variety of lifetime managers compatible with type registrations. Each of these managers provide unique algorithm for instance management.

\n

In example above services are created on each request. In most cases it is desireable to create services only once. To create singleton services appropriate lifetime managers must be added to the registration:

\n
container.RegisterType<IService, MailService>("Email", TypeLifetime.Singleton);\ncontainer.RegisterType<IService, WebService>("WebMail", TypeLifetime.Singleton);\ncontainer.RegisterType<IService, SecureService>("Encrypted", TypeLifetime.Singleton);\n
\n

For more information about lifetime management see Lifetime Management

\n

Creation Pipeline

\n

Unity instantiates an objects by creating a resolver pipeline and executing it with passed in injection values. Each pipeline consists of a several steps with each step performing part of the initialization.

\n

How the pipeline is assembled and what values are injected is controlled by collection of Injection Member objects passed to registration method. The normal steps of the object creation process are:

\n

Injection Instructions

\n

During the registration you could Configure the container to select certain constructor, initialize properties and fields, call methods, and inject values and instructions for dependencies. All this is done by passing appropriate Injection Members to the registration. For more information see:

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/11/2019","updated_at_date_time":"2019-03-11T00:52:36Z"},"_path":"tutorials/registration/type/registration/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/registration/","conceptual":"\n

Type registration is where all the Unity magic is happening. It provides complete and flexible control of all aspects of type creation and management.

\n

When a Type is registered Unity creates a contract (a registration) consisting of a Type, a Name, and instructions on how this contract should be fulfilled when requested.

\n

Minimum Registration Requirements

\n

The only required part of the registration is a registered Type itself. Theoretically you could register a Type like this:

\n
container.RegisterType<Service>();\n
\n

This would tell the container to use all defaults when creating Service. Registrations like this do not make much sense. If creation process does not require any customization, all that time spent on registering such Type is wasted. It is measurably faster to resolve a plain Type from the container if it is not registered at all.

\n

When a Type is annotated with injection attributes it does not require registration either. If you are satisfied with annotated selections, appropriate constructor and all other members are annotated, and you do not require lifetime management for created instances, the Type should not be registered.

\n

You should only register types if at least one of the following is true:

\n
    \n
  • Contract/Registration requires a Name
  • \n
  • Require a mapping between service and implementation types
  • \n
  • Require lifetime policy other than transient
  • \n
  • Need to override injection annotated with attribute(s)
  • \n
  • Nondefault constructor should be selected
  • \n
  • Properties or fields should be injected
  • \n
  • Method(s) should be called during initialization
  • \n
\n

Creating Registration Contracts

\n

Simplest form of a contract is a registration without a Name ( the Name is null ). This type of registration is called default and in some cases is used as a prototype during resolution of Generic types (hence name default).

\n

A contract could have a Name. The Name could be any arbitrary string of one or more characters. The simple named contract could be registered like this:

\n
container.RegisterType<Service>("Contract Name");\n
\n
\n
NOTE
\n

It is not recommended to use empty strings as names.

\n
\n

Creating Type Mapping

\n

A mapping instructs Unity on how to satisfy the contract and what implementation Type should be used to create an object. For example is you want to associate an interface IService with implementation Service you would register it like this:

\n
container.RegisterType<IService, Service>();\n
\n

Or you could register multiple implementations for the same service:

\n
container.RegisterType<IService, MailService>("Email");\ncontainer.RegisterType<IService, WebService>("WebMail");\ncontainer.RegisterType<IService, SecureService>("Encrypted");\n
\n

For more information see <xref:Tutorial.Registration.Mapping>

\n

Lifetime Management

\n

Unity provides wide variety of lifetime managers compatible with type registrations. Each of these managers provide unique algorithm for instance management.

\n

In example above services are created on each request. In most cases it is desireable to create services only once. To create singleton services appropriate lifetime managers must be added to the registration:

\n
container.RegisterType<IService, MailService>("Email", TypeLifetime.Singleton);\ncontainer.RegisterType<IService, WebService>("WebMail", TypeLifetime.Singleton);\ncontainer.RegisterType<IService, SecureService>("Encrypted", TypeLifetime.Singleton);\n
\n

For more information about lifetime management see Lifetime Management

\n

Creation Pipeline

\n

Unity instantiates an objects by creating a resolver pipeline and executing it with passed in injection values. Each pipeline consists of a several steps with each step performing part of the initialization.

\n

How the pipeline is assembled and what values are injected is controlled by collection of Injection Member objects passed to registration method. The normal steps of the object creation process are:

\n

Injection Instructions

\n

During the registration you could Configure the container to select certain constructor, initialize properties and fields, call methods, and inject values and instructions for dependencies. All this is done by passing appropriate Injection Members to the registration. For more information see:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/registration.md","depot_name":".","document_id":"78bfd467-15ee-c33f-03fe-7bf8e5fa4acf","document_version_independent_id":"6550f935-d2d3-ea0d-a876-56627397815d","gitcommit":"https://github.com/unitycontainer/documentation/blob/2db5f0db6ca55d08f45572868da0e40bb64f7bc0/tutorials/registration/Type/registration.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/registration.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/registration.md","rawTitle":"

Type Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Type Registration","uid":"Tutorial.Registration.Type","updated_at":"2019-03-11 12:52 AM","wordCount":576},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/toc.json b/_site/tutorials/toc.json new file mode 100644 index 0000000..b0a70ff --- /dev/null +++ b/_site/tutorials/toc.json @@ -0,0 +1 @@ +{"metadata":{"_appTitle":"Unity Container","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appFaviconPath":"images/favicon.png"},"items":[{"name":"Composition","items":[{"name":"Resolution","items":[{"name":"Resolution","href":"composition/resolution/resolution/","uid":"Tutorial.Resolution"},{"name":"Type","href":"composition/resolution/type/"}],"topicUid":"Tutorial.Resolution"},{"name":"Build-Up","items":[{"name":"Build Up","href":"composition/buildup/buildup/","uid":"Tutorial.BuildUp"}],"topicUid":"Tutorial.BuildUp"},{"name":"Type Mapping","items":[{"name":"Service To Implementation","href":"composition/mapping/implementation/","uid":"Tutorial.Mapping.Implementation"},{"name":"Generic Mapping","href":"composition/mapping/generic/","uid":"Tutorial.Mapping.Generic"}],"topicUid":"Tutorial.Mapping"},{"name":"Selection","items":[{"name":"Constructor","href":"composition/selection/constructor/","uid":"Tutorial.Selection.Constructor"}],"topicUid":"Tutorial.Resolution.Selection"},{"name":"Generics","items":[{"name":"Metadata","href":"composition/generics/metadata/","uid":"Tutorial.Generics.Metadata"},{"name":"Lazy","href":"composition/generics/lazy/","uid":"Tutorial.Lazy"},{"name":"Deferred","href":"composition/generics/deferred/","uid":"Tutorial.Deferred"}],"topicUid":"Tutorial.Generics"},{"name":"Collections","href":"composition/collections/"},{"name":"Overrides","items":[{"name":"Parameter","href":"composition/overrides/parameter/","uid":"Tutorial.Resolution.Override.Parameter"},{"name":"Field","href":"composition/overrides/field/","uid":"Tutorial.Resolution.Override.Field"},{"name":"Property","href":"composition/overrides/property/","uid":"Tutorial.Resolution.Override.Property"},{"name":"Dependency","href":"composition/overrides/dependency/","uid":"Tutorial.Resolution.Override.Dependency"}],"topicUid":"Tutorial.Resolution.Override"}],"topicUid":"Tutorial.Composition"},{"name":"Attributed Injection Model","items":[{"name":"Constructor","href":"annotation/constructor/","uid":"Tutorial.Annotation.Constructor"},{"name":"Parameter","href":"annotation/parameter/","uid":"Tutorial.Annotation.Parameter"},{"name":"Method","href":"annotation/method/","uid":"Tutorial.Annotation.Method"},{"name":"Field","href":"annotation/field/","uid":"Tutorial.Annotation.Field"},{"name":"Property","href":"annotation/property/","uid":"Tutorial.Annotation.Property"}],"topicUid":"Tutorial.Annotation"},{"name":"Registration","items":[{"name":"Metadata","href":"registration/metadata/","uid":"Tutorial.Registration.Metadata"},{"name":"Instance Registration","href":"registration/instance/","uid":"Tutorial.Registration.Instance"},{"name":"Factory Registration","href":"registration/factory/","uid":"Tutorial.Registration.Factory"},{"name":"Type Registration","items":[{"name":"Constructor","items":[{"name":"Automatic Selection","href":"registration/type/constructor/automatic/","uid":"Tutorial.Injection.Constructor.Implicit"},{"name":"Attribute Annotation","href":"registration/type/constructor/annotation/","uid":"Tutorial.Injection.Constructor.Annotation"},{"name":"Invoking default ctor()","href":"registration/type/constructor/param_none/","uid":"Tutorial.Injection.Constructor.Default"},{"name":"Select By Parameters Count","href":"registration/type/constructor/param_count/","uid":"Tutorial.Injection.Constructor.Count"},{"name":"Select By Parameter Types","href":"registration/type/constructor/param_types/","uid":"Tutorial.Injection.Constructor.Types"}],"topicUid":"Tutorial.Injection.Constructor"},{"name":"Fields","href":"registration/type/field/","uid":"Tutorial.Injection.Field"},{"name":"Properties","href":"registration/type/property/","uid":"Tutorial.Injection.Property"},{"name":"Method Invocation","href":"registration/type/method/","uid":"Tutorial.Injection.Method"},{"name":"Dependency Injection","items":[{"name":"Resolved values","href":"registration/type/injection/resolved/","uid":"Tutorial.Injection.Resolved"},{"name":"Injected values","href":"registration/type/injection/injected/","uid":"Tutorial.Injection.Injected"},{"name":"Default values","href":"registration/type/injection/default/","uid":"Tutorial.Injection.Default"}],"topicUid":"Tutorial.Injection"}],"topicUid":"Tutorial.Registration.Type"}],"topicUid":"Tutorial.Registration"},{"name":"Hierarchies","href":"hierarchies/","uid":"Tutorial.Container.Hierarchy"},{"name":"Lifetime","items":[{"name":"Transient","href":"lifetime/transient/","uid":"Tutorial.Lifetime.Transient"},{"name":"Singleton","href":"lifetime/singleton/","uid":"Tutorial.Lifetime.Singleton"},{"name":"Container","href":"lifetime/container/","uid":"Tutorial.Lifetime.Container"},{"name":"Container Transient","href":"lifetime/container_transient/","uid":"Tutorial.Lifetime.Container.Transient"},{"name":"Hierarchical","href":"lifetime/hierarchical/","uid":"Tutorial.Lifetime.Hierarchical"},{"name":"Per Resolve","href":"lifetime/resolve/","uid":"Tutorial.Lifetime.Resolve"},{"name":"Per Thread","href":"lifetime/thread/","uid":"Tutorial.Lifetime.Thread"},{"name":"External","href":"lifetime/external/","uid":"Tutorial.Lifetime.External"}],"topicUid":"Tutorial.Lifetime"},{"name":"Extensions","items":[{"name":"Diagnostic","href":"extensions/diagnostic/","uid":"Tutorial.Extension.Diagnostic"},{"name":"Legacy","href":"extensions/legacy/","uid":"Tutorial.Extension.Legacy"},{"name":"Force Activation","href":"extensions/activation/","uid":"Tutorial.Extension.Activation"},{"name":"Force Compilation","href":"extensions/compilation/","uid":"Tutorial.Extension.Compilation"}],"topicUid":"Tutorial.Extensions"}]} \ No newline at end of file diff --git a/articles/installation.md b/articles/installation.md index dfa0d80..37aac29 100644 --- a/articles/installation.md +++ b/articles/installation.md @@ -8,11 +8,11 @@ Unity is designed to support a range of common scenarios for resolving instances ## To prepare your application -Before you can add Unity to your solution you need to decide if you want to reference packages individually ([Abstractions](https://www.nuget.org/packages/Unity.Abstractions/), [Container](https://www.nuget.org/packages/Unity.Container/)) or use composite [Unity]([Unity](https://www.nuget.org/packages/Unity/)) package. +Before you can add Unity to your solution you need to decide if you want to reference packages individually ([Abstractions](https://www.nuget.org/packages/Unity.Abstractions/), [Container](https://www.nuget.org/packages/Unity.Container/)) or use composite [Unity](https://www.nuget.org/packages/Unity) package. ### Referencing composite package - Referencing single [Unity]([Unity](https://www.nuget.org/packages/Unity/)) package is more appropriate in case of small(ish) project, when everything is contained within one solution. Upgrading such solution is trivial with the help of NuGet Manager. + Referencing single [Unity](https://www.nuget.org/packages/Unity/) package is more appropriate in case of small(ish) project, when everything is contained within one solution. Upgrading such solution is trivial with the help of NuGet Manager. ### Referencing individual packages diff --git a/docfx.json b/docfx.json index 5b14786..5b0bd67 100644 --- a/docfx.json +++ b/docfx.json @@ -3,9 +3,19 @@ { "src": [ { - "files": [ - "src/Abstractions/src/Unity.Abstractions.csproj" - ] + "files": ["*.csproj"], + "exclude": [ "**/bin/**", "**/obj/**" ], + "src": "../Abstractions/src" + }, + { + "files": ["*.csproj"], + "exclude": [ "**/bin/**", "**/obj/**" ], + "src": "../Container/src" + }, + { + "files": ["*.csproj"], + "exclude": [ "**/bin/**", "**/obj/**", "**/Microsoft.Practices/**" ], + "src": "../Configuration/src" } ], "dest": "api", diff --git a/specs/specification.md b/specs/specification.md index ea2ec30..aa2d8b8 100644 --- a/specs/specification.md +++ b/specs/specification.md @@ -7,7 +7,7 @@ title: Unity Container Specification ## 1 Introduction -Unity is a full featured, general-purpose container for use in any type of Microsoft® .NET Framework-based application. It provides all of the features commonly found in dependency injection implementations. +Unity is a full featured, general-purpose container for use in any type of Microsoft® .NET Framework-based application. It provides all of the features commonly found in dependency injection implementations. In addition, Unity is extensible. You can write container extensions that change the behavior of the container, or add new capabilities. For example, the interception feature provided by Unity, which you can use to add policies to objects, is implemented as a container extension. @@ -30,7 +30,3 @@ In addition, Unity is extensible. You can write container extensions that change [!include [Workflow](workflow.md)] -[!code-csharp [Overrides](../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs#Overrides)] - - -[!code-csharp [Implementation](../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs#Implementation)] diff --git a/src/Documentation.sln b/src/Documentation.sln deleted file mode 100644 index 2b87c72..0000000 --- a/src/Documentation.sln +++ /dev/null @@ -1,91 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.28407.52 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Unity.Container", "Container\src\Unity.Container.csproj", "{EE1F752C-1FAB-41AD-AD63-857D0E62AB6B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Unity.Specification.Tests", "Container\tests\Unity.Specification\Unity.Specification.Tests.csproj", "{EE6E1971-4752-4444-9211-70BDE3CC4014}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Unity.Abstractions", "Abstractions\src\Unity.Abstractions.csproj", "{2A50E743-8817-41DB-BD23-6F9625665EF7}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Unity.Specification", "SpecificationTests\src\Unity.Specification.csproj", "{DBEC49D6-88ED-4717-A827-23BADE3DC5E1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Unity.Specification.Diagnostic", "SpecificationTests\diagnostic\Unity.Specification.Diagnostic.csproj", "{510FC085-87EF-4EB8-85EB-6C1E0F629313}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Unity.Specification.Tests.Diagnostic", "Container\tests\Unity.Diagnostic\Unity.Specification.Tests.Diagnostic.csproj", "{5F84ACD0-148C-4DE0-ADCA-073B5C66BAD1}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Specification", "Specification", "{F8CC6AB5-0A31-4DD5-9926-72CCC64E34F7}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{BF3AB5C4-79AF-4A82-8D53-B4DA476D363F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EE1F752C-1FAB-41AD-AD63-857D0E62AB6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EE1F752C-1FAB-41AD-AD63-857D0E62AB6B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EE1F752C-1FAB-41AD-AD63-857D0E62AB6B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EE1F752C-1FAB-41AD-AD63-857D0E62AB6B}.Release|Any CPU.Build.0 = Release|Any CPU - {EE6E1971-4752-4444-9211-70BDE3CC4014}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EE6E1971-4752-4444-9211-70BDE3CC4014}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EE6E1971-4752-4444-9211-70BDE3CC4014}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2A50E743-8817-41DB-BD23-6F9625665EF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2A50E743-8817-41DB-BD23-6F9625665EF7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2A50E743-8817-41DB-BD23-6F9625665EF7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2A50E743-8817-41DB-BD23-6F9625665EF7}.Release|Any CPU.Build.0 = Release|Any CPU - {DBEC49D6-88ED-4717-A827-23BADE3DC5E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DBEC49D6-88ED-4717-A827-23BADE3DC5E1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DBEC49D6-88ED-4717-A827-23BADE3DC5E1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {510FC085-87EF-4EB8-85EB-6C1E0F629313}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {510FC085-87EF-4EB8-85EB-6C1E0F629313}.Debug|Any CPU.Build.0 = Debug|Any CPU - {510FC085-87EF-4EB8-85EB-6C1E0F629313}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5F84ACD0-148C-4DE0-ADCA-073B5C66BAD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5F84ACD0-148C-4DE0-ADCA-073B5C66BAD1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5F84ACD0-148C-4DE0-ADCA-073B5C66BAD1}.Release|Any CPU.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {EE6E1971-4752-4444-9211-70BDE3CC4014} = {BF3AB5C4-79AF-4A82-8D53-B4DA476D363F} - {DBEC49D6-88ED-4717-A827-23BADE3DC5E1} = {F8CC6AB5-0A31-4DD5-9926-72CCC64E34F7} - {510FC085-87EF-4EB8-85EB-6C1E0F629313} = {F8CC6AB5-0A31-4DD5-9926-72CCC64E34F7} - {5F84ACD0-148C-4DE0-ADCA-073B5C66BAD1} = {BF3AB5C4-79AF-4A82-8D53-B4DA476D363F} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {5AAFE72A-A2F4-4EE5-B3E2-B8E1E4652456} - EndGlobalSection - GlobalSection(Performance) = preSolution - HasPerformanceSessions = true - EndGlobalSection - GlobalSection(Performance) = preSolution - HasPerformanceSessions = true - EndGlobalSection - GlobalSection(Performance) = preSolution - HasPerformanceSessions = true - EndGlobalSection - GlobalSection(Performance) = preSolution - HasPerformanceSessions = true - EndGlobalSection - GlobalSection(Performance) = preSolution - HasPerformanceSessions = true - EndGlobalSection - GlobalSection(Performance) = preSolution - HasPerformanceSessions = true - EndGlobalSection - GlobalSection(Performance) = preSolution - HasPerformanceSessions = true - EndGlobalSection - GlobalSection(Performance) = preSolution - HasPerformanceSessions = true - EndGlobalSection - GlobalSection(Performance) = preSolution - HasPerformanceSessions = true - EndGlobalSection - GlobalSection(Performance) = preSolution - HasPerformanceSessions = true - EndGlobalSection -EndGlobal diff --git a/tutorials/Composition/Mapping/mapping.md b/tutorials/Composition/Mapping/mapping.md index 4ff0114..449fe44 100644 --- a/tutorials/Composition/Mapping/mapping.md +++ b/tutorials/Composition/Mapping/mapping.md @@ -3,16 +3,16 @@ uid: Tutorial.Mapping title: Type Mapping --- -# Type Mapping +## Type Mapping In service oriented architecture components expose services through well known contracts. In `C#` terms the contracts are the abstract classes or interfaces these components and services are exposing. So when we say service type, in most of the cases, we mean the interfaces implementing the contract. And the components are called Implementation types. Unity allows to publish these components and make all the contracts they implement available to clients to consume. This publishing and "advertisement" is done by registering types and interfaces (contracts) associated with components. -## Registration Type +### Registration Type Registration type is the type of the 'Contract' this service provides. It could be the [Type](xref:System.Type) of the service itself of any of the base types it implements. -## Service To Implementation Mapping +### Service To Implementation Mapping The mapping is done when service is registered. Any type of registration (Type, Factory, Instance) allow to associate a service with different contracts. \ No newline at end of file diff --git a/tutorials/registration/instance.md b/tutorials/registration/instance.md index e7b46f5..7257e3f 100644 --- a/tutorials/registration/instance.md +++ b/tutorials/registration/instance.md @@ -43,7 +43,7 @@ container.RegisterInstance(typeof(IService), instance) container.RegisterInstance(typeof(IService), "xyz", instance) ``` -In this example Unity creates two registrations of type **IService**. When either is resolved it returns the instance of the **Service** object we registered with container. For more information see [Type Mapping](mapping.md) +In this example Unity creates two registrations of type **IService**. When either is resolved it returns the instance of the **Service** object we registered with container. For more information see [Type Mapping](xref:Tutorial.Mapping) ## Lifetime diff --git a/tutorials/registration/metadata.md b/tutorials/registration/metadata.md index 2719fd1..fa69975 100644 --- a/tutorials/registration/metadata.md +++ b/tutorials/registration/metadata.md @@ -64,7 +64,7 @@ var result = container.Resolve(); Assert(typeof(Service) == result.GetType()) ``` -For more information see [Type Mapping](mapping.md). +For more information see [Type Mapping](xref:Tutorial.Mapping). ## [Lifetime Manager](xref:Unity.IContainerRegistration#Unity_IContainerRegistration_LifetimeManager) From 86c4be2ba4b2dece8ea81dae13449835cd251674 Mon Sep 17 00:00:00 2001 From: Eugene Sadovoi Date: Fri, 3 Apr 2020 13:47:15 -0700 Subject: [PATCH 3/4] Removing generated site --- _site/.dependencymap.json | 1 - _site/.errors.log | 3550 ----------------- _site/.links.json | 1 - _site/.manifest.json | 1 - _site/.publish.json | 1 - _site/.xrefmap.json | 1 - _site/api/index.html | 1 - _site/api/toc.json | 1 - _site/articles/application/index.html | 1 - _site/articles/changelog/index.html | 1 - _site/articles/design/index.html | 1 - _site/articles/features/index.html | 1 - _site/articles/history/index.html | 1 - _site/articles/installation/index.html | 1 - _site/articles/introduction/index.html | 1 - _site/articles/quickstart/index.html | 1 - _site/articles/toc.json | 1 - _site/filemap.json | 1 - _site/full-dependent-list.txt | 345 -- _site/index.html | 1 - _site/op_aggregated_file_map_info.json | 1 - _site/readme/index.html | 1 - _site/server-side-dependent-list.txt | 345 -- _site/specs/constructor/index.html | 1 - _site/specs/field/index.html | 1 - _site/specs/hierarchy/index.html | 1 - _site/specs/method/index.html | 1 - _site/specs/property/index.html | 1 - _site/specs/specification/index.html | 1 - _site/specs/summary/index.html | 1 - _site/specs/toc.json | 1 - _site/specs/workflow/index.html | 1 - _site/toc.json | 1 - .../annotation/annotation/index.html | 1 - .../annotation/constructor/index.html | 1 - _site/tutorials/annotation/field/index.html | 1 - _site/tutorials/annotation/method/index.html | 1 - .../tutorials/annotation/parameter/index.html | 1 - .../tutorials/annotation/property/index.html | 1 - .../composition/buildup/buildup/index.html | 1 - .../composition/collections/index.html | 1 - .../composition/composition/index.html | 1 - .../composition/generics/deferred/index.html | 1 - .../composition/generics/generics/index.html | 1 - .../composition/generics/lazy/index.html | 1 - .../composition/generics/metadata/index.html | 1 - .../composition/mapping/generic/index.html | 1 - .../mapping/implementation/index.html | 1 - .../composition/mapping/mapping/index.html | 1 - .../overrides/dependency/index.html | 1 - .../composition/overrides/field/index.html | 1 - .../composition/overrides/override/index.html | 1 - .../overrides/parameter/index.html | 1 - .../composition/overrides/property/index.html | 1 - .../resolution/resolution/index.html | 1 - .../composition/resolution/type/index.html | 1 - .../selection/constructor/index.html | 1 - .../selection/selection/index.html | 1 - _site/tutorials/definitions/index.html | 1 - .../extensions/activation/index.html | 1 - .../extensions/compilation/index.html | 1 - .../extensions/diagnostic/index.html | 1 - .../extensions/extensions/index.html | 1 - _site/tutorials/extensions/legacy/index.html | 1 - _site/tutorials/hierarchies/index.html | 1 - _site/tutorials/lifetime/container/index.html | 1 - .../lifetime/container_transient/index.html | 1 - _site/tutorials/lifetime/disposal/index.html | 1 - _site/tutorials/lifetime/external/index.html | 1 - .../lifetime/hierarchical/index.html | 1 - _site/tutorials/lifetime/lifetime/index.html | 1 - _site/tutorials/lifetime/managers/index.html | 1 - _site/tutorials/lifetime/resolve/index.html | 1 - _site/tutorials/lifetime/singleton/index.html | 1 - _site/tutorials/lifetime/thread/index.html | 1 - _site/tutorials/lifetime/transient/index.html | 1 - .../tutorials/registration/factory/index.html | 1 - .../registration/instance/index.html | 1 - .../registration/metadata/index.html | 1 - .../registration/registration/index.html | 1 - .../type/constructor/annotation/index.html | 1 - .../type/constructor/automatic/index.html | 1 - .../type/constructor/constructor/index.html | 1 - .../type/constructor/param_count/index.html | 1 - .../type/constructor/param_none/index.html | 1 - .../type/constructor/param_types/index.html | 1 - .../type/constructor/param_values/index.html | 1 - .../registration/type/field/index.html | 1 - .../type/injection/default/index.html | 1 - .../type/injection/injected/index.html | 1 - .../type/injection/injection/index.html | 1 - .../type/injection/resolved/index.html | 1 - .../registration/type/method/index.html | 1 - .../registration/type/parameter/index.html | 1 - .../registration/type/property/index.html | 1 - .../registration/type/registration/index.html | 1 - _site/tutorials/toc.json | 1 - 97 files changed, 4334 deletions(-) delete mode 100644 _site/.dependencymap.json delete mode 100644 _site/.errors.log delete mode 100644 _site/.links.json delete mode 100644 _site/.manifest.json delete mode 100644 _site/.publish.json delete mode 100644 _site/.xrefmap.json delete mode 100644 _site/api/index.html delete mode 100644 _site/api/toc.json delete mode 100644 _site/articles/application/index.html delete mode 100644 _site/articles/changelog/index.html delete mode 100644 _site/articles/design/index.html delete mode 100644 _site/articles/features/index.html delete mode 100644 _site/articles/history/index.html delete mode 100644 _site/articles/installation/index.html delete mode 100644 _site/articles/introduction/index.html delete mode 100644 _site/articles/quickstart/index.html delete mode 100644 _site/articles/toc.json delete mode 100644 _site/filemap.json delete mode 100644 _site/full-dependent-list.txt delete mode 100644 _site/index.html delete mode 100644 _site/op_aggregated_file_map_info.json delete mode 100644 _site/readme/index.html delete mode 100644 _site/server-side-dependent-list.txt delete mode 100644 _site/specs/constructor/index.html delete mode 100644 _site/specs/field/index.html delete mode 100644 _site/specs/hierarchy/index.html delete mode 100644 _site/specs/method/index.html delete mode 100644 _site/specs/property/index.html delete mode 100644 _site/specs/specification/index.html delete mode 100644 _site/specs/summary/index.html delete mode 100644 _site/specs/toc.json delete mode 100644 _site/specs/workflow/index.html delete mode 100644 _site/toc.json delete mode 100644 _site/tutorials/annotation/annotation/index.html delete mode 100644 _site/tutorials/annotation/constructor/index.html delete mode 100644 _site/tutorials/annotation/field/index.html delete mode 100644 _site/tutorials/annotation/method/index.html delete mode 100644 _site/tutorials/annotation/parameter/index.html delete mode 100644 _site/tutorials/annotation/property/index.html delete mode 100644 _site/tutorials/composition/buildup/buildup/index.html delete mode 100644 _site/tutorials/composition/collections/index.html delete mode 100644 _site/tutorials/composition/composition/index.html delete mode 100644 _site/tutorials/composition/generics/deferred/index.html delete mode 100644 _site/tutorials/composition/generics/generics/index.html delete mode 100644 _site/tutorials/composition/generics/lazy/index.html delete mode 100644 _site/tutorials/composition/generics/metadata/index.html delete mode 100644 _site/tutorials/composition/mapping/generic/index.html delete mode 100644 _site/tutorials/composition/mapping/implementation/index.html delete mode 100644 _site/tutorials/composition/mapping/mapping/index.html delete mode 100644 _site/tutorials/composition/overrides/dependency/index.html delete mode 100644 _site/tutorials/composition/overrides/field/index.html delete mode 100644 _site/tutorials/composition/overrides/override/index.html delete mode 100644 _site/tutorials/composition/overrides/parameter/index.html delete mode 100644 _site/tutorials/composition/overrides/property/index.html delete mode 100644 _site/tutorials/composition/resolution/resolution/index.html delete mode 100644 _site/tutorials/composition/resolution/type/index.html delete mode 100644 _site/tutorials/composition/selection/constructor/index.html delete mode 100644 _site/tutorials/composition/selection/selection/index.html delete mode 100644 _site/tutorials/definitions/index.html delete mode 100644 _site/tutorials/extensions/activation/index.html delete mode 100644 _site/tutorials/extensions/compilation/index.html delete mode 100644 _site/tutorials/extensions/diagnostic/index.html delete mode 100644 _site/tutorials/extensions/extensions/index.html delete mode 100644 _site/tutorials/extensions/legacy/index.html delete mode 100644 _site/tutorials/hierarchies/index.html delete mode 100644 _site/tutorials/lifetime/container/index.html delete mode 100644 _site/tutorials/lifetime/container_transient/index.html delete mode 100644 _site/tutorials/lifetime/disposal/index.html delete mode 100644 _site/tutorials/lifetime/external/index.html delete mode 100644 _site/tutorials/lifetime/hierarchical/index.html delete mode 100644 _site/tutorials/lifetime/lifetime/index.html delete mode 100644 _site/tutorials/lifetime/managers/index.html delete mode 100644 _site/tutorials/lifetime/resolve/index.html delete mode 100644 _site/tutorials/lifetime/singleton/index.html delete mode 100644 _site/tutorials/lifetime/thread/index.html delete mode 100644 _site/tutorials/lifetime/transient/index.html delete mode 100644 _site/tutorials/registration/factory/index.html delete mode 100644 _site/tutorials/registration/instance/index.html delete mode 100644 _site/tutorials/registration/metadata/index.html delete mode 100644 _site/tutorials/registration/registration/index.html delete mode 100644 _site/tutorials/registration/type/constructor/annotation/index.html delete mode 100644 _site/tutorials/registration/type/constructor/automatic/index.html delete mode 100644 _site/tutorials/registration/type/constructor/constructor/index.html delete mode 100644 _site/tutorials/registration/type/constructor/param_count/index.html delete mode 100644 _site/tutorials/registration/type/constructor/param_none/index.html delete mode 100644 _site/tutorials/registration/type/constructor/param_types/index.html delete mode 100644 _site/tutorials/registration/type/constructor/param_values/index.html delete mode 100644 _site/tutorials/registration/type/field/index.html delete mode 100644 _site/tutorials/registration/type/injection/default/index.html delete mode 100644 _site/tutorials/registration/type/injection/injected/index.html delete mode 100644 _site/tutorials/registration/type/injection/injection/index.html delete mode 100644 _site/tutorials/registration/type/injection/resolved/index.html delete mode 100644 _site/tutorials/registration/type/method/index.html delete mode 100644 _site/tutorials/registration/type/parameter/index.html delete mode 100644 _site/tutorials/registration/type/property/index.html delete mode 100644 _site/tutorials/registration/type/registration/index.html delete mode 100644 _site/tutorials/toc.json diff --git a/_site/.dependencymap.json b/_site/.dependencymap.json deleted file mode 100644 index 4ddb3fd..0000000 --- a/_site/.dependencymap.json +++ /dev/null @@ -1 +0,0 @@ -{"dependencies":{"articles/design.md":[{"source":"articles/application.md","type":"uidInclusion"}],"articles/quickstart.md":[{"source":"tutorials/Composition/Mapping/mapping.md","type":"uidInclusion"},{"source":"tutorials/Composition/Selection/selection.md","type":"uidInclusion"},{"source":"tutorials/lifetime/lifetime.md","type":"uidInclusion"}],"articles/toc.yml":[{"source":"articles/application.md","type":"uidInclusion"},{"source":"articles/changelog.md","type":"uidInclusion"},{"source":"articles/design.md","type":"uidInclusion"},{"source":"articles/features.md","type":"uidInclusion"},{"source":"articles/installation.md","type":"uidInclusion"},{"source":"articles/introduction.md","type":"uidInclusion"},{"source":"articles/quickstart.md","type":"uidInclusion"}],"specs/specification.md":[{"source":"specs/workflow.md","type":"inclusion"}],"specs/toc.yml":[{"source":"specs/field.md","type":"uidInclusion"},{"source":"specs/method.md","type":"uidInclusion"},{"source":"specs/property.md","type":"uidInclusion"},{"source":"specs/specification.md","type":"uidInclusion"}],"toc.yml":[{"source":"api/toc.yml","type":"tocInclusion"},{"source":"articles/introduction.md","type":"link"},{"source":"articles/toc.yml","type":"tocInclusion"},{"source":"tutorials/hierarchies.md","type":"link"},{"source":"tutorials/toc.yml","type":"tocInclusion"}],"tutorials/Annotation/annotation.md":[{"source":"tutorials/Annotation/constructor.md","type":"uidInclusion"},{"source":"tutorials/Annotation/field.md","type":"uidInclusion"},{"source":"tutorials/Annotation/method.md","type":"uidInclusion"},{"source":"tutorials/Annotation/parameter.md","type":"uidInclusion"},{"source":"tutorials/Annotation/property.md","type":"uidInclusion"}],"tutorials/Annotation/constructor.md":[{"source":"tutorials/Composition/Selection/constructor.md","type":"uidInclusion"},{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/constructor.md","type":"uidInclusion"}],"tutorials/Annotation/method.md":[{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"}],"tutorials/Annotation/toc.yml":[{"source":"tutorials/Annotation/constructor.md","type":"uidInclusion"},{"source":"tutorials/Annotation/field.md","type":"uidInclusion"},{"source":"tutorials/Annotation/method.md","type":"uidInclusion"},{"source":"tutorials/Annotation/parameter.md","type":"uidInclusion"},{"source":"tutorials/Annotation/property.md","type":"uidInclusion"}],"tutorials/Composition/BuildUp/toc.yml":[{"source":"tutorials/Composition/BuildUp/buildup.md","type":"uidInclusion"}],"tutorials/Composition/Generics/toc.yml":[{"source":"tutorials/Composition/Generics/deferred.md","type":"uidInclusion"},{"source":"tutorials/Composition/Generics/lazy.md","type":"uidInclusion"},{"source":"tutorials/Composition/Generics/metadata.md","type":"uidInclusion"}],"tutorials/Composition/Mapping/toc.yml":[{"source":"tutorials/Composition/Mapping/generic.md","type":"uidInclusion"},{"source":"tutorials/Composition/Mapping/implementation.md","type":"uidInclusion"}],"tutorials/Composition/Overrides/override.md":[{"source":"tutorials/Composition/Overrides/dependency.md","type":"uidInclusion"},{"source":"tutorials/Composition/Overrides/field.md","type":"uidInclusion"},{"source":"tutorials/Composition/Overrides/parameter.md","type":"uidInclusion"},{"source":"tutorials/Composition/Overrides/property.md","type":"uidInclusion"}],"tutorials/Composition/Overrides/toc.yml":[{"source":"tutorials/Composition/Overrides/dependency.md","type":"uidInclusion"},{"source":"tutorials/Composition/Overrides/field.md","type":"uidInclusion"},{"source":"tutorials/Composition/Overrides/parameter.md","type":"uidInclusion"},{"source":"tutorials/Composition/Overrides/property.md","type":"uidInclusion"}],"tutorials/Composition/Resolution/resolution.md":[{"source":"tutorials/Composition/Generics/deferred.md","type":"uidInclusion"},{"source":"tutorials/Composition/Generics/generics.md","type":"uidInclusion"},{"source":"tutorials/Composition/Overrides/override.md","type":"uidInclusion"},{"source":"tutorials/Composition/Resolution/type.md","type":"uidInclusion"},{"source":"tutorials/Composition/collections.md","type":"uidInclusion"}],"tutorials/Composition/Resolution/toc.yml":[{"source":"tutorials/Composition/Resolution/resolution.md","type":"uidInclusion"},{"source":"tutorials/Composition/Resolution/type.md","type":"link"}],"tutorials/Composition/Selection/constructor.md":[{"source":"tutorials/Annotation/annotation.md","type":"uidInclusion"},{"source":"tutorials/Annotation/constructor.md","type":"uidInclusion"},{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/constructor.md","type":"uidInclusion"},{"source":"tutorials/registration/metadata.md","type":"uidInclusion"},{"source":"tutorials/registration/registration.md","type":"uidInclusion"}],"tutorials/Composition/Selection/toc.yml":[{"source":"tutorials/Composition/Selection/constructor.md","type":"uidInclusion"}],"tutorials/Composition/composition.md":[{"source":"tutorials/Composition/Resolution/resolution.md","type":"uidInclusion"}],"tutorials/Composition/toc.yml":[{"source":"tutorials/Composition/BuildUp/toc.yml","type":"tocInclusion"},{"source":"tutorials/Composition/Generics/toc.yml","type":"tocInclusion"},{"source":"tutorials/Composition/Mapping/toc.yml","type":"tocInclusion"},{"source":"tutorials/Composition/Overrides/toc.yml","type":"tocInclusion"},{"source":"tutorials/Composition/Resolution/toc.yml","type":"tocInclusion"},{"source":"tutorials/Composition/Selection/toc.yml","type":"tocInclusion"},{"source":"tutorials/Composition/collections.md","type":"link"}],"tutorials/Extensions/toc.yml":[{"source":"tutorials/Extensions/activation.md","type":"uidInclusion"},{"source":"tutorials/Extensions/compilation.md","type":"uidInclusion"},{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"},{"source":"tutorials/Extensions/legacy.md","type":"uidInclusion"}],"tutorials/lifetime/container.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"}],"tutorials/lifetime/container_transient.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/registration.md","type":"uidInclusion"},{"source":"tutorials/registration/factory.md","type":"uidInclusion"},{"source":"tutorials/registration/instance.md","type":"uidInclusion"}],"tutorials/lifetime/external.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"},{"source":"tutorials/registration/instance.md","type":"uidInclusion"}],"tutorials/lifetime/hierarchical.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/registration.md","type":"uidInclusion"},{"source":"tutorials/registration/factory.md","type":"uidInclusion"},{"source":"tutorials/registration/instance.md","type":"uidInclusion"}],"tutorials/lifetime/lifetime.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"}],"tutorials/lifetime/managers.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"}],"tutorials/lifetime/resolve.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/registration.md","type":"uidInclusion"},{"source":"tutorials/registration/factory.md","type":"uidInclusion"},{"source":"tutorials/registration/instance.md","type":"uidInclusion"}],"tutorials/lifetime/singleton.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"}],"tutorials/lifetime/thread.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/registration.md","type":"uidInclusion"},{"source":"tutorials/registration/factory.md","type":"uidInclusion"},{"source":"tutorials/registration/instance.md","type":"uidInclusion"}],"tutorials/lifetime/toc.yml":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"}],"tutorials/lifetime/transient.md":[{"source":"tutorials/lifetime/container.md","type":"uidInclusion"},{"source":"tutorials/lifetime/container_transient.md","type":"uidInclusion"},{"source":"tutorials/lifetime/external.md","type":"uidInclusion"},{"source":"tutorials/lifetime/hierarchical.md","type":"uidInclusion"},{"source":"tutorials/lifetime/managers.md","type":"inclusion"},{"source":"tutorials/lifetime/resolve.md","type":"uidInclusion"},{"source":"tutorials/lifetime/singleton.md","type":"uidInclusion"},{"source":"tutorials/lifetime/thread.md","type":"uidInclusion"},{"source":"tutorials/lifetime/transient.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/annotation.md":[{"source":"tutorials/Annotation/constructor.md","type":"inclusion"},{"source":"tutorials/Composition/Selection/constructor.md","type":"uidInclusion"},{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/automatic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/constructor.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_count.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_none.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_types.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_values.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/automatic.md":[{"source":"tutorials/Annotation/annotation.md","type":"uidInclusion"},{"source":"tutorials/Annotation/constructor.md","type":"uidInclusion"},{"source":"tutorials/Composition/Selection/constructor.md","type":"inclusion"},{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/annotation.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/constructor.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_count.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_none.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_types.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_values.md","type":"uidInclusion"},{"source":"tutorials/registration/metadata.md","type":"uidInclusion"},{"source":"tutorials/registration/registration.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/constructor.md":[{"source":"tutorials/Annotation/constructor.md","type":"uidInclusion"},{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/annotation.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/automatic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_count.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_none.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_types.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_values.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/param_count.md":[{"source":"tutorials/registration/Type/Constructor/annotation.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/automatic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_none.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_types.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_values.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/param_none.md":[{"source":"tutorials/Extensions/diagnostic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/annotation.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/automatic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_count.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_types.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_values.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/param_types.md":[{"source":"tutorials/registration/Type/Constructor/annotation.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/automatic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_count.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_none.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_values.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/param_values.md":[{"source":"tutorials/registration/Type/Constructor/annotation.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/automatic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_count.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_none.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_types.md","type":"uidInclusion"}],"tutorials/registration/Type/Constructor/toc.yml":[{"source":"tutorials/registration/Type/Constructor/annotation.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/automatic.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_count.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_none.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/param_types.md","type":"uidInclusion"}],"tutorials/registration/Type/Injection/toc.yml":[{"source":"tutorials/registration/Type/Injection/default.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Injection/injected.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Injection/resolved.md","type":"uidInclusion"}],"tutorials/registration/Type/registration.md":[{"source":"tutorials/lifetime/lifetime.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/Constructor/constructor.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/field.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/method.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/property.md","type":"uidInclusion"}],"tutorials/registration/Type/toc.yml":[{"source":"tutorials/registration/Type/Constructor/toc.yml","type":"tocInclusion"},{"source":"tutorials/registration/Type/Injection/toc.yml","type":"tocInclusion"},{"source":"tutorials/registration/Type/field.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/method.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/property.md","type":"uidInclusion"}],"tutorials/registration/instance.md":[{"source":"tutorials/Composition/Mapping/mapping.md","type":"uidInclusion"},{"source":"tutorials/registration/metadata.md","type":"uidInclusion"}],"tutorials/registration/metadata.md":[{"source":"tutorials/Composition/Mapping/mapping.md","type":"uidInclusion"},{"source":"tutorials/lifetime/lifetime.md","type":"link"}],"tutorials/registration/registration.md":[{"source":"tutorials/hierarchies.md","type":"uidInclusion"},{"source":"tutorials/registration/Type/registration.md","type":"uidInclusion"},{"source":"tutorials/registration/factory.md","type":"uidInclusion"},{"source":"tutorials/registration/instance.md","type":"uidInclusion"}],"tutorials/registration/toc.yml":[{"source":"tutorials/registration/Type/toc.yml","type":"tocInclusion"},{"source":"tutorials/registration/factory.md","type":"uidInclusion"},{"source":"tutorials/registration/instance.md","type":"uidInclusion"},{"source":"tutorials/registration/metadata.md","type":"uidInclusion"}],"tutorials/toc.yml":[{"source":"tutorials/Annotation/toc.yml","type":"tocInclusion"},{"source":"tutorials/Composition/toc.yml","type":"tocInclusion"},{"source":"tutorials/Extensions/toc.yml","type":"tocInclusion"},{"source":"tutorials/hierarchies.md","type":"uidInclusion"},{"source":"tutorials/lifetime/toc.yml","type":"tocInclusion"},{"source":"tutorials/registration/toc.yml","type":"tocInclusion"}]}} \ No newline at end of file diff --git a/_site/.errors.log b/_site/.errors.log deleted file mode 100644 index 82dbd52..0000000 --- a/_site/.errors.log +++ /dev/null @@ -1,3550 +0,0 @@ -["warning","file-not-found","Invalid file link: '[Unity](https://www.nuget.org/packages/Unity/)'.","articles/installation.md",11,257] -["warning","file-not-found","Invalid file link: '[Unity](https://www.nuget.org/packages/Unity/)'.","articles/installation.md",15,21] -["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",33,1] -["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",36,1] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] -["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] -["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] -["warning","file-not-found","Invalid file link: 'mapping.md'.","tutorials/registration/instance.md",46,200] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] -["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] -["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] -["warning","file-not-found","Invalid file link: 'mapping.md'.","tutorials/registration/metadata.md",67,26] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] -["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] -["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] -["warning","file-not-found","Invalid file link: '[Unity](https://www.nuget.org/packages/Unity)'.","articles/installation.md",11,257] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] -["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",33,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] -["warning","file-not-found","Invalid file link: '[Unity](https://www.nuget.org/packages/Unity/)'.","articles/installation.md",15,21] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] -["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",36,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] -["warning","file-not-found","Invalid file link: 'mapping.md'.","tutorials/registration/instance.md",46,200] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] -["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] -["warning","file-not-found","Invalid file link: 'mapping.md'.","tutorials/registration/metadata.md",67,26] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] -["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] -["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] -["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] -["warning","file-not-found","Invalid file link: '[Unity](https://www.nuget.org/packages/Unity/)'.","articles/installation.md",15,21] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] -["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",33,1] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] -["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] -["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",36,1] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] -["warning","file-not-found","Invalid file link: 'mapping.md'.","tutorials/registration/instance.md",46,200] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] -["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] -["warning","file-not-found","Invalid file link: 'mapping.md'.","tutorials/registration/metadata.md",67,26] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] -["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] -["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] -["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] -["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",33,1] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] -["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] -["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",36,1] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] -["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] -["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] -["warning","file-not-found","Invalid file link: 'mapping.md'.","tutorials/registration/metadata.md",67,26] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] -["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] -["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] -["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",33,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] -["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] -["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",36,1] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] -["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] -["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] -["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] -["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] -["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",33,1] -["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",36,1] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] -["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] -["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] -["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] -["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] -["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] -["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",33,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] -["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] -["warning","codesnippet-not-found","Cannot resolve '../src/Abstractions/src/Dependency/Injection/Abstracts/InjectionMember.cs' relative to 'specs/specification.md'.","specs/specification.md",36,1] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] -["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] -["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] -["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] -["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] -["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] -["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] -["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] -["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] -["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] -["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] -["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] -["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] -["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] -["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] -["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] -["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] -["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] -["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] -["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] -["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] -["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] -["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] -["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] -["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IPolicySet.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolve.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuilderStrategy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolveDelegate-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.ChildContainerCreatedEventArgs.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IContainerRegistration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.ResolveDelegateFactory.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicyEntry.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.Typed_InjectionValue.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ForceActivation.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InstanceLifetime.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.ExecutePlanDelegate.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.TypeResolver.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.NamedTypeBuildKey-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.SectionExtensionContext.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.ValueElementHelper.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ValueElementHelper.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Diagnostic.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolverImpl.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Storage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ITypeLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IResolveDelegateFactory.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.TypeBasedOverride-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.UnityContainerExtension.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.IExtensionContext.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderStage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Storage.ElementHandlerMap-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DiagnosticExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.IllegalInjectionMethodException.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.TypeBasedOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.FieldOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ConfigurationElementExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.StagedStrategyChainExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.ResolvePlanDelegate.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.RegistrationSet.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.SelectorDelegate-3.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicBuildPlanGenerationContext.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.PolicySetDebugProxy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ForceCompillation.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.FactoryLifetime.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.IUnityContainerExtensionConfigurator.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuildKeyMappingStrategy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.MemberSelector-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.Legacy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedArrayParameter-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ExternallyControlledLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.RegisterInstanceEventArgs.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedArrayParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolverFactory-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Collections.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.SupportedMembers.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericBase.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Override.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Factories.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.ConstructorSelection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Factories.EnumerableResolver.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.NamedEventArgs.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMember.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.Policy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMatching.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionParameter-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericResolvedArrayParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.IInstanceLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ILifetimeContainer.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.RegistrationSet.Entry.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.NamedType.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DefaultLifetime.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IBuildPlanCreatorPolicy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.LifetimeStrategy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.SelectionStage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalGenericParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Invoke.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.DefaultPolicies.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.XmlWriterExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.UnknownElementHandlerMap-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.PropertyProcessor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.SingletonLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.PerResolveLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedParameter-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.TypeResolverImpl.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.SynchronizedLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.DependencyOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MemberProcessor-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.DependencyOverride-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.HierarchicalLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.PropertyOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MemberProcessor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.InternalRegistration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.IDefaultPolicy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.MemberInfoBase-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ParameterOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.DictionaryExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeManager.InvalidValue.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolver.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolve.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ExtensionElementMap.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeContainer.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ParameterValue.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InjectionMethodAttribute.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AliasElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMember-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.MethodBase-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicyList.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.NamedElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AssemblyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.SectionExtensionElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionProperty.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ParametersProcessor-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionConstructor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConstructorElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainer.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InjectionConstructorAttribute.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.StagedStrategyChain-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.PropertyDiagnostic.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.OptionalDependencyAttribute.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DependencyResolutionAttribute.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.PolicySetExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMethod.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.OptionalElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ArrayElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ArrayElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DependencyAttribute.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.InjectionMemberElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.MethodElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.RegisterElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.DependencyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ConstructorDiagnostic.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.LifetimeElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerExtensionElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ParameterBase.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.SectionExtensionElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.DependencyMissingException.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.RegisterElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerExtensionElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.UnityContainerExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.UnityConfigurationSection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.LifetimeElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainerAsyncExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.UnityBuildStage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ObjectBuilder.BuildPlan.DynamicMethod.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InstanceElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ParameterOverrides.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ValueElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolveContext.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamespaceElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ValueElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.PropertyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.IFactoryLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AliasElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.SectionExtension.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.TypeLifetime.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.SectionExtensionElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.PropertyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Collections.RegistrationElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.IStagedStrategyChain-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainerExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.Injection_ParameterValue.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IPolicyList.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IBuildPlanPolicy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MethodDiagnostic.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AliasElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ExtensionExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.NamespaceElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.DictionaryExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ContainerControlledLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolverFactory-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.XmlWriterExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ConstructorProcessor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.QuickSet-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.RegisterEventArgs.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InjectionMemberElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AssemblyElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InjectionMemberElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InstanceElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.LinkedNode-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerExtensionElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterValueElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.SectionExtensionElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InstanceElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.UnityContainerExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.ConfigurationElementExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterValueElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.NamedTypeBuildKey.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.RegisterElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.FieldProcessor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalParameter-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.SelectionStage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.IRegistry-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AssemblyElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.OptionalElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.ArrayResolveStrategy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.ParameterValueElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerExtensionElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.FieldDiagnostic.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.TransientLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuildPlanStrategy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.PerThreadLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolverOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.ContainerRegistration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElementCollection-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.NamespaceElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AssemblyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.FieldElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.RegistrationElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InstanceElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionField.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.MethodElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.ContainerConfiguringElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MethodProcessor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamespaceElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IUnityContainerAsync.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.RegisterElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElementCollectionBase-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.UnityConfigurationSection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConstructorElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AliasElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Inject.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerConfiguringElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.DependencyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.IValueProvidingElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ContainerControlledTransientManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IUnityContainer.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ResolutionFailedException.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamedElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerConfiguringElementCollection.yml",1,1] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration'","api/toc.yml",2,8] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AliasElement'","api/toc.yml",5,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AliasElementCollection'","api/toc.yml",7,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ArrayElement'","api/toc.yml",9,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AssemblyElement'","api/toc.yml",11,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AssemblyElementCollection'","api/toc.yml",13,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConstructorElement'","api/toc.yml",15,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerConfiguringElementCollection'","api/toc.yml",17,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerElement'","api/toc.yml",19,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerElementCollection'","api/toc.yml",21,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerExtensionElement'","api/toc.yml",23,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerExtensionElementCollection'","api/toc.yml",25,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.DependencyElement'","api/toc.yml",27,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElement'","api/toc.yml",29,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElementCollection'","api/toc.yml",31,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InjectionMemberElementCollection'","api/toc.yml",33,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InstanceElement'","api/toc.yml",35,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InstanceElementCollection'","api/toc.yml",37,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.LifetimeElement'","api/toc.yml",39,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.MethodElement'","api/toc.yml",41,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamedElement'","api/toc.yml",43,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamespaceElement'","api/toc.yml",45,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamespaceElementCollection'","api/toc.yml",47,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.OptionalElement'","api/toc.yml",49,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterElement'","api/toc.yml",51,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterElementCollection'","api/toc.yml",53,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterValueElementCollection'","api/toc.yml",55,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.PropertyElement'","api/toc.yml",57,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.RegisterElement'","api/toc.yml",59,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.RegisterElementCollection'","api/toc.yml",61,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.SectionExtensionElement'","api/toc.yml",63,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.SectionExtensionElementCollection'","api/toc.yml",65,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.UnityConfigurationSection'","api/toc.yml",67,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.UnityContainerExtensions'","api/toc.yml",69,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ValueElement'","api/toc.yml",71,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers'","api/toc.yml",73,8] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ConfigurationElementExtensions'","api/toc.yml",76,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.DictionaryExtensions'","api/toc.yml",78,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolver'","api/toc.yml",80,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolverImpl'","api/toc.yml",82,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.UnknownElementHandlerMap`1'","api/toc.yml",84,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ValueElementHelper'","api/toc.yml",87,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.XmlWriterExtensions'","api/toc.yml",89,10] -["warning","xref-not-found","Cross reference not found: 'Unity'","api/toc.yml",91,8] -["warning","xref-not-found","Cross reference not found: 'Unity.DefaultLifetime'","api/toc.yml",94,10] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","api/toc.yml",96,10] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyResolutionAttribute'","api/toc.yml",98,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Diagnostic'","api/toc.yml",100,10] -["warning","xref-not-found","Cross reference not found: 'Unity.DiagnosticExtensions'","api/toc.yml",102,10] -["warning","xref-not-found","Cross reference not found: 'Unity.ExtensionExtensions'","api/toc.yml",104,10] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","api/toc.yml",106,10] -["warning","xref-not-found","Cross reference not found: 'Unity.ForceActivation'","api/toc.yml",108,10] -["warning","xref-not-found","Cross reference not found: 'Unity.ForceCompillation'","api/toc.yml",110,10] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","api/toc.yml",112,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Inject'","api/toc.yml",114,10] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","api/toc.yml",116,10] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","api/toc.yml",118,10] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","api/toc.yml",120,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","api/toc.yml",122,10] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","api/toc.yml",124,10] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainerAsync'","api/toc.yml",126,10] -["warning","xref-not-found","Cross reference not found: 'Unity.MemberSelector`2'","api/toc.yml",128,10] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","api/toc.yml",131,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Override'","api/toc.yml",133,10] -["warning","xref-not-found","Cross reference not found: 'Unity.ResolutionFailedException'","api/toc.yml",135,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolve'","api/toc.yml",137,10] -["warning","xref-not-found","Cross reference not found: 'Unity.SupportedMembers'","api/toc.yml",139,10] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","api/toc.yml",141,10] -["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainer'","api/toc.yml",143,10] -["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainerAsyncExtensions'","api/toc.yml",145,10] -["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainerExtensions'","api/toc.yml",147,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder'","api/toc.yml",149,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext'","api/toc.yml",152,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext.ExecutePlanDelegate'","api/toc.yml",154,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext.ResolvePlanDelegate'","api/toc.yml",156,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderStage'","api/toc.yml",158,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.NamedTypeBuildKey'","api/toc.yml",160,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.NamedTypeBuildKey`1'","api/toc.yml",162,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.SelectionStage'","api/toc.yml",165,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.UnityBuildStage'","api/toc.yml",167,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration'","api/toc.yml",169,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AliasElement'","api/toc.yml",172,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AliasElementCollection'","api/toc.yml",174,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ArrayElement'","api/toc.yml",176,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AssemblyElement'","api/toc.yml",178,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AssemblyElementCollection'","api/toc.yml",180,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConstructorElement'","api/toc.yml",182,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerConfiguringElementCollection'","api/toc.yml",184,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerElement'","api/toc.yml",186,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerElementCollection'","api/toc.yml",188,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerExtensionElement'","api/toc.yml",190,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerExtensionElementCollection'","api/toc.yml",192,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.DependencyElement'","api/toc.yml",194,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ExtensionElementMap'","api/toc.yml",196,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.FieldElement'","api/toc.yml",198,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.IDefaultPolicy'","api/toc.yml",200,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InjectionMemberElementCollection'","api/toc.yml",202,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InstanceElement'","api/toc.yml",204,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InstanceElementCollection'","api/toc.yml",206,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.LifetimeElement'","api/toc.yml",208,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.MethodElement'","api/toc.yml",210,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.NamespaceElement'","api/toc.yml",212,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.NamespaceElementCollection'","api/toc.yml",214,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.OptionalElement'","api/toc.yml",216,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterElement'","api/toc.yml",218,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterElementCollection'","api/toc.yml",220,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterValueElementCollection'","api/toc.yml",222,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.PropertyElement'","api/toc.yml",224,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.RegisterElement'","api/toc.yml",226,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.RegisterElementCollection'","api/toc.yml",228,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.SectionExtensionElement'","api/toc.yml",230,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.SectionExtensionElementCollection'","api/toc.yml",232,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.UnityConfigurationSection'","api/toc.yml",234,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.UnityContainerExtensions'","api/toc.yml",236,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ValueElement'","api/toc.yml",238,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions'","api/toc.yml",240,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.ContainerConfiguringElement'","api/toc.yml",243,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElement'","api/toc.yml",245,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElementCollection`1'","api/toc.yml",247,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElementCollectionBase`1'","api/toc.yml",250,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.InjectionMemberElement'","api/toc.yml",253,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.IValueProvidingElement'","api/toc.yml",255,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.NamedElement'","api/toc.yml",257,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.ParameterValueElement'","api/toc.yml",259,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.RegistrationElement'","api/toc.yml",261,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.SectionExtension'","api/toc.yml",263,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.SectionExtensionContext'","api/toc.yml",265,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Collections'","api/toc.yml",267,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Collections.RegistrationElementCollection'","api/toc.yml",270,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers'","api/toc.yml",272,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.TypeResolver'","api/toc.yml",275,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.TypeResolverImpl'","api/toc.yml",277,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.ValueElementHelper'","api/toc.yml",279,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions'","api/toc.yml",281,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.ConfigurationElementExtensions'","api/toc.yml",284,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.DictionaryExtensions'","api/toc.yml",286,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.XmlWriterExtensions'","api/toc.yml",288,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Storage'","api/toc.yml",290,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Storage.ElementHandlerMap`1'","api/toc.yml",293,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Events'","api/toc.yml",296,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Events.ChildContainerCreatedEventArgs'","api/toc.yml",299,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Events.NamedEventArgs'","api/toc.yml",301,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Events.RegisterEventArgs'","api/toc.yml",303,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Events.RegisterInstanceEventArgs'","api/toc.yml",305,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions'","api/toc.yml",307,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions.DependencyMissingException'","api/toc.yml",310,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions.IllegalInjectionMethodException'","api/toc.yml",312,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Extension'","api/toc.yml",314,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Extension.IExtensionContext'","api/toc.yml",317,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Extension.IUnityContainerExtensionConfigurator'","api/toc.yml",319,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Extension.Legacy'","api/toc.yml",321,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Extension.UnityContainerExtension'","api/toc.yml",323,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Factories'","api/toc.yml",325,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Factories.EnumerableResolver'","api/toc.yml",328,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","api/toc.yml",330,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericBase'","api/toc.yml",333,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericParameter'","api/toc.yml",335,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericResolvedArrayParameter'","api/toc.yml",337,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.Injection_ParameterValue'","api/toc.yml",339,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","api/toc.yml",341,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionField'","api/toc.yml",343,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMatching'","api/toc.yml",345,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","api/toc.yml",347,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember`2'","api/toc.yml",349,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMethod'","api/toc.yml",352,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionParameter'","api/toc.yml",354,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionParameter`1'","api/toc.yml",356,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionProperty'","api/toc.yml",359,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.MemberInfoBase`1'","api/toc.yml",361,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.MethodBase`1'","api/toc.yml",364,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalGenericParameter'","api/toc.yml",367,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalParameter'","api/toc.yml",369,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalParameter`1'","api/toc.yml",371,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ParameterBase'","api/toc.yml",374,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ParameterValue'","api/toc.yml",376,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedArrayParameter'","api/toc.yml",378,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedArrayParameter`1'","api/toc.yml",380,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","api/toc.yml",383,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter`1'","api/toc.yml",385,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.Typed_InjectionValue'","api/toc.yml",388,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","api/toc.yml",390,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","api/toc.yml",393,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","api/toc.yml",395,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","api/toc.yml",397,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","api/toc.yml",399,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.IFactoryLifetimeManager'","api/toc.yml",401,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.IInstanceLifetimeManager'","api/toc.yml",403,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ILifetimeContainer'","api/toc.yml",405,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ITypeLifetimeManager'","api/toc.yml",407,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeContainer'","api/toc.yml",409,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeManager'","api/toc.yml",411,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeManager.InvalidValue'","api/toc.yml",413,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","api/toc.yml",415,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","api/toc.yml",417,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","api/toc.yml",419,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SynchronizedLifetimeManager'","api/toc.yml",421,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","api/toc.yml",423,10] -["warning","xref-not-found","Cross reference not found: 'Unity.ObjectBuilder.BuildPlan.DynamicMethod'","api/toc.yml",425,8] -["warning","xref-not-found","Cross reference not found: 'Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicBuildPlanGenerationContext'","api/toc.yml",428,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy'","api/toc.yml",430,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.DefaultPolicies'","api/toc.yml",433,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IBuildPlanCreatorPolicy'","api/toc.yml",435,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IBuildPlanPolicy'","api/toc.yml",437,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IPolicyList'","api/toc.yml",439,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IPolicySet'","api/toc.yml",441,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IResolveDelegateFactory'","api/toc.yml",443,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.PolicySetExtensions'","api/toc.yml",445,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.ResolveDelegateFactory'","api/toc.yml",447,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors'","api/toc.yml",449,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ConstructorDiagnostic'","api/toc.yml",452,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ConstructorProcessor'","api/toc.yml",454,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.FieldDiagnostic'","api/toc.yml",456,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.FieldProcessor'","api/toc.yml",458,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MemberProcessor'","api/toc.yml",460,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MemberProcessor`2'","api/toc.yml",462,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MethodDiagnostic'","api/toc.yml",465,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MethodProcessor'","api/toc.yml",467,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ParametersProcessor`1'","api/toc.yml",469,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.PropertyDiagnostic'","api/toc.yml",472,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.PropertyProcessor'","api/toc.yml",474,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Registration'","api/toc.yml",476,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Registration.ContainerRegistration'","api/toc.yml",479,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Registration.InternalRegistration'","api/toc.yml",481,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution'","api/toc.yml",483,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","api/toc.yml",486,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride`1'","api/toc.yml",488,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.FieldOverride'","api/toc.yml",491,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolve'","api/toc.yml",493,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolveContext'","api/toc.yml",495,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolverFactory`1'","api/toc.yml",497,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.NamedType'","api/toc.yml",500,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ParameterOverride'","api/toc.yml",502,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ParameterOverrides'","api/toc.yml",504,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.PropertyOverride'","api/toc.yml",506,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolveDelegate`1'","api/toc.yml",508,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolverFactory`1'","api/toc.yml",511,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolverOverride'","api/toc.yml",514,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.TypeBasedOverride'","api/toc.yml",516,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.TypeBasedOverride`1'","api/toc.yml",518,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Selection'","api/toc.yml",521,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Selection.ConstructorSelection'","api/toc.yml",524,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Selection.SelectionStage'","api/toc.yml",526,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Selection.SelectorDelegate`3'","api/toc.yml",528,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage'","api/toc.yml",531,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.IRegistry`2'","api/toc.yml",534,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.IStagedStrategyChain`2'","api/toc.yml",537,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.LinkedNode`2'","api/toc.yml",540,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicyEntry'","api/toc.yml",543,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicyList'","api/toc.yml",545,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet'","api/toc.yml",547,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet.Policy'","api/toc.yml",549,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet.PolicySetDebugProxy'","api/toc.yml",551,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.QuickSet`1'","api/toc.yml",553,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.RegistrationSet'","api/toc.yml",556,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.RegistrationSet.Entry'","api/toc.yml",558,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.StagedStrategyChain`2'","api/toc.yml",560,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.StagedStrategyChainExtensions'","api/toc.yml",563,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies'","api/toc.yml",565,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.ArrayResolveStrategy'","api/toc.yml",568,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuilderStrategy'","api/toc.yml",570,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuildKeyMappingStrategy'","api/toc.yml",572,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuildPlanStrategy'","api/toc.yml",574,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.LifetimeStrategy'","api/toc.yml",576,10] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] -["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] -["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] -["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] -["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] -["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ConfigurationElementExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ParameterOverrides.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.Injection_ParameterValue.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DiagnosticExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMatching.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.ExecutePlanDelegate.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.ConstructorSelection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.UnknownElementHandlerMap-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.IRegistry-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.SelectionStage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuilderStrategy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Storage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.SectionExtension.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.LifetimeStrategy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolver.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ForceActivation.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.ResolvePlanDelegate.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.PolicySetExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.IUnityContainerExtensionConfigurator.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Factories.EnumerableResolver.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicBuildPlanGenerationContext.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.ResolveDelegateFactory.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.ConfigurationElementExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.TypeLifetime.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolveDelegate-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Factories.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ObjectBuilder.BuildPlan.DynamicMethod.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.IValueProvidingElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedArrayParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.TypeResolver.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericBase.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.ContainerRegistration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuildKeyMappingStrategy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.NamedType.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.Legacy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.DictionaryExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IContainerRegistration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DefaultLifetime.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Invoke.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolve.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ExtensionExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.SelectorDelegate-3.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.SectionExtensionContext.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IResolveDelegateFactory.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.IInstanceLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.UnityBuildStage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.DependencyOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.UnityContainerExtension.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.Policy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.NamedEventArgs.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ParameterValue.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.ChildContainerCreatedEventArgs.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ITypeLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.LinkedNode-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalParameter-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ExtensionElementMap.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.TypeResolverImpl.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuildPlanStrategy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderStage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ParameterBase.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.Typed_InjectionValue.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.DependencyMissingException.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.TransientLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.QuickSet-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ValueElementHelper.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.RegistrationSet.Entry.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.DefaultPolicies.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalGenericParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.SupportedMembers.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericResolvedArrayParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.ArrayResolveStrategy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MemberProcessor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.DependencyOverride-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.DictionaryExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.RegistrationSet.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicyList.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolverImpl.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.IFactoryLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedParameter-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ExternallyControlledLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.ValueElementHelper.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ContainerControlledLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.TypeBasedOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.FieldDiagnostic.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.IExtensionContext.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.PerThreadLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Diagnostic.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.FieldProcessor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeContainer.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.IllegalInjectionMethodException.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamespaceElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolverOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Storage.ElementHandlerMap-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedArrayParameter-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.NamedElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.StagedStrategyChain-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AssemblyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.XmlWriterExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MemberProcessor-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.SingletonLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ParametersProcessor-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConstructorElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamedElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.FactoryLifetime.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainer.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.TypeBasedOverride-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.UnityContainerExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConstructorElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerExtensionElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolveContext.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionField.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.PropertyDiagnostic.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.SectionExtensionElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.LifetimeElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.NamedTypeBuildKey-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.MethodBase-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.PropertyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerExtensionElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.RegistrationElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.PropertyProcessor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.FieldOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ContainerControlledTransientManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ForceCompillation.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMethod.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.IStagedStrategyChain-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Override.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ArrayElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ILifetimeContainer.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.ContainerConfiguringElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.InjectionMemberElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InjectionConstructorAttribute.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DependencyAttribute.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.HierarchicalLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicyEntry.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMember.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InstanceElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.OptionalElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AliasElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ConstructorProcessor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.DependencyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElementCollectionBase-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.NamespaceElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolverFactory-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.DependencyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerConfiguringElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ValueElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.OptionalDependencyAttribute.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Collections.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.ParameterValueElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IBuildPlanCreatorPolicy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.PropertyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IPolicyList.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.MethodElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AliasElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MethodProcessor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainerAsyncExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AssemblyElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IBuildPlanPolicy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeManager.InvalidValue.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ConstructorDiagnostic.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Collections.RegistrationElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.XmlWriterExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.SectionExtensionElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.MemberSelector-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Inject.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterValueElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionParameter-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MethodDiagnostic.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.UnityContainerExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerExtensionElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ArrayElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.PolicySetDebugProxy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.SelectionStage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.RegisterElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.PropertyOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.IDefaultPolicy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterValueElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolve.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElementCollection-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerExtensionElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.RegisterInstanceEventArgs.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.UnityConfigurationSection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.RegisterEventArgs.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InstanceLifetime.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.NamespaceElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.SectionExtensionElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.StagedStrategyChainExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.RegisterElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.InternalRegistration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMember-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.PerResolveLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerConfiguringElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AliasElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.NamedTypeBuildKey.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ResolutionFailedException.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.LifetimeElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ParameterOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.SynchronizedLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.MemberInfoBase-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InjectionMemberElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.RegisterElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionConstructor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.MethodElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.FieldElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AssemblyElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InstanceElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.SectionExtensionElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InjectionMethodAttribute.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionProperty.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DependencyResolutionAttribute.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ValueElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.OptionalElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InstanceElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainerExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamespaceElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.RegisterElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AssemblyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InjectionMemberElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InstanceElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AliasElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IUnityContainerAsync.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IPolicySet.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IUnityContainer.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolverFactory-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.UnityConfigurationSection.yml",1,1] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration'","api/toc.yml",2,8] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AliasElement'","api/toc.yml",5,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AliasElementCollection'","api/toc.yml",7,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ArrayElement'","api/toc.yml",9,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AssemblyElement'","api/toc.yml",11,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AssemblyElementCollection'","api/toc.yml",13,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConstructorElement'","api/toc.yml",15,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerConfiguringElementCollection'","api/toc.yml",17,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerElement'","api/toc.yml",19,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerElementCollection'","api/toc.yml",21,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerExtensionElement'","api/toc.yml",23,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerExtensionElementCollection'","api/toc.yml",25,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.DependencyElement'","api/toc.yml",27,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElement'","api/toc.yml",29,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InjectionMemberElementCollection'","api/toc.yml",33,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElementCollection'","api/toc.yml",31,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InstanceElement'","api/toc.yml",35,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InstanceElementCollection'","api/toc.yml",37,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.LifetimeElement'","api/toc.yml",39,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.MethodElement'","api/toc.yml",41,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamedElement'","api/toc.yml",43,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamespaceElement'","api/toc.yml",45,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamespaceElementCollection'","api/toc.yml",47,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.OptionalElement'","api/toc.yml",49,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterElement'","api/toc.yml",51,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterElementCollection'","api/toc.yml",53,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterValueElementCollection'","api/toc.yml",55,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.PropertyElement'","api/toc.yml",57,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.RegisterElement'","api/toc.yml",59,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.RegisterElementCollection'","api/toc.yml",61,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.SectionExtensionElement'","api/toc.yml",63,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.SectionExtensionElementCollection'","api/toc.yml",65,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.UnityConfigurationSection'","api/toc.yml",67,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.UnityContainerExtensions'","api/toc.yml",69,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ValueElement'","api/toc.yml",71,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers'","api/toc.yml",73,8] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ConfigurationElementExtensions'","api/toc.yml",76,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.DictionaryExtensions'","api/toc.yml",78,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolver'","api/toc.yml",80,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolverImpl'","api/toc.yml",82,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.UnknownElementHandlerMap`1'","api/toc.yml",84,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ValueElementHelper'","api/toc.yml",87,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.XmlWriterExtensions'","api/toc.yml",89,10] -["warning","xref-not-found","Cross reference not found: 'Unity'","api/toc.yml",91,8] -["warning","xref-not-found","Cross reference not found: 'Unity.DefaultLifetime'","api/toc.yml",94,10] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","api/toc.yml",96,10] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyResolutionAttribute'","api/toc.yml",98,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Diagnostic'","api/toc.yml",100,10] -["warning","xref-not-found","Cross reference not found: 'Unity.DiagnosticExtensions'","api/toc.yml",102,10] -["warning","xref-not-found","Cross reference not found: 'Unity.ExtensionExtensions'","api/toc.yml",104,10] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","api/toc.yml",106,10] -["warning","xref-not-found","Cross reference not found: 'Unity.ForceActivation'","api/toc.yml",108,10] -["warning","xref-not-found","Cross reference not found: 'Unity.ForceCompillation'","api/toc.yml",110,10] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","api/toc.yml",112,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Inject'","api/toc.yml",114,10] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","api/toc.yml",116,10] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","api/toc.yml",118,10] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","api/toc.yml",120,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","api/toc.yml",122,10] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","api/toc.yml",124,10] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainerAsync'","api/toc.yml",126,10] -["warning","xref-not-found","Cross reference not found: 'Unity.MemberSelector`2'","api/toc.yml",128,10] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","api/toc.yml",131,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Override'","api/toc.yml",133,10] -["warning","xref-not-found","Cross reference not found: 'Unity.ResolutionFailedException'","api/toc.yml",135,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolve'","api/toc.yml",137,10] -["warning","xref-not-found","Cross reference not found: 'Unity.SupportedMembers'","api/toc.yml",139,10] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","api/toc.yml",141,10] -["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainer'","api/toc.yml",143,10] -["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainerAsyncExtensions'","api/toc.yml",145,10] -["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainerExtensions'","api/toc.yml",147,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder'","api/toc.yml",149,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext'","api/toc.yml",152,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext.ExecutePlanDelegate'","api/toc.yml",154,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext.ResolvePlanDelegate'","api/toc.yml",156,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderStage'","api/toc.yml",158,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.NamedTypeBuildKey'","api/toc.yml",160,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.NamedTypeBuildKey`1'","api/toc.yml",162,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.SelectionStage'","api/toc.yml",165,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.UnityBuildStage'","api/toc.yml",167,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration'","api/toc.yml",169,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AliasElement'","api/toc.yml",172,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AliasElementCollection'","api/toc.yml",174,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ArrayElement'","api/toc.yml",176,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AssemblyElement'","api/toc.yml",178,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AssemblyElementCollection'","api/toc.yml",180,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConstructorElement'","api/toc.yml",182,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerConfiguringElementCollection'","api/toc.yml",184,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerElement'","api/toc.yml",186,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerElementCollection'","api/toc.yml",188,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerExtensionElement'","api/toc.yml",190,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerExtensionElementCollection'","api/toc.yml",192,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.DependencyElement'","api/toc.yml",194,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ExtensionElementMap'","api/toc.yml",196,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.FieldElement'","api/toc.yml",198,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.IDefaultPolicy'","api/toc.yml",200,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InjectionMemberElementCollection'","api/toc.yml",202,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InstanceElement'","api/toc.yml",204,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InstanceElementCollection'","api/toc.yml",206,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.LifetimeElement'","api/toc.yml",208,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.MethodElement'","api/toc.yml",210,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.NamespaceElement'","api/toc.yml",212,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.NamespaceElementCollection'","api/toc.yml",214,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.OptionalElement'","api/toc.yml",216,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterElement'","api/toc.yml",218,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterElementCollection'","api/toc.yml",220,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterValueElementCollection'","api/toc.yml",222,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.PropertyElement'","api/toc.yml",224,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.RegisterElement'","api/toc.yml",226,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.RegisterElementCollection'","api/toc.yml",228,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.SectionExtensionElement'","api/toc.yml",230,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.SectionExtensionElementCollection'","api/toc.yml",232,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.UnityConfigurationSection'","api/toc.yml",234,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.UnityContainerExtensions'","api/toc.yml",236,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ValueElement'","api/toc.yml",238,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions'","api/toc.yml",240,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.ContainerConfiguringElement'","api/toc.yml",243,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElement'","api/toc.yml",245,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElementCollection`1'","api/toc.yml",247,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElementCollectionBase`1'","api/toc.yml",250,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.InjectionMemberElement'","api/toc.yml",253,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.IValueProvidingElement'","api/toc.yml",255,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.NamedElement'","api/toc.yml",257,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.ParameterValueElement'","api/toc.yml",259,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.RegistrationElement'","api/toc.yml",261,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.SectionExtension'","api/toc.yml",263,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.SectionExtensionContext'","api/toc.yml",265,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Collections'","api/toc.yml",267,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Collections.RegistrationElementCollection'","api/toc.yml",270,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers'","api/toc.yml",272,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.TypeResolver'","api/toc.yml",275,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.TypeResolverImpl'","api/toc.yml",277,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.ValueElementHelper'","api/toc.yml",279,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions'","api/toc.yml",281,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.ConfigurationElementExtensions'","api/toc.yml",284,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.DictionaryExtensions'","api/toc.yml",286,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.XmlWriterExtensions'","api/toc.yml",288,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Storage'","api/toc.yml",290,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Storage.ElementHandlerMap`1'","api/toc.yml",293,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Events'","api/toc.yml",296,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Events.ChildContainerCreatedEventArgs'","api/toc.yml",299,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Events.NamedEventArgs'","api/toc.yml",301,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Events.RegisterEventArgs'","api/toc.yml",303,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Events.RegisterInstanceEventArgs'","api/toc.yml",305,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions'","api/toc.yml",307,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions.DependencyMissingException'","api/toc.yml",310,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions.IllegalInjectionMethodException'","api/toc.yml",312,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Extension'","api/toc.yml",314,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Extension.IExtensionContext'","api/toc.yml",317,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Extension.IUnityContainerExtensionConfigurator'","api/toc.yml",319,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Extension.Legacy'","api/toc.yml",321,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Extension.UnityContainerExtension'","api/toc.yml",323,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Factories'","api/toc.yml",325,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Factories.EnumerableResolver'","api/toc.yml",328,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","api/toc.yml",330,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericBase'","api/toc.yml",333,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericParameter'","api/toc.yml",335,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericResolvedArrayParameter'","api/toc.yml",337,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.Injection_ParameterValue'","api/toc.yml",339,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","api/toc.yml",341,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionField'","api/toc.yml",343,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMatching'","api/toc.yml",345,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","api/toc.yml",347,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember`2'","api/toc.yml",349,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMethod'","api/toc.yml",352,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionParameter'","api/toc.yml",354,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionParameter`1'","api/toc.yml",356,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionProperty'","api/toc.yml",359,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.MemberInfoBase`1'","api/toc.yml",361,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.MethodBase`1'","api/toc.yml",364,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalGenericParameter'","api/toc.yml",367,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalParameter'","api/toc.yml",369,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalParameter`1'","api/toc.yml",371,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ParameterBase'","api/toc.yml",374,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ParameterValue'","api/toc.yml",376,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedArrayParameter'","api/toc.yml",378,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedArrayParameter`1'","api/toc.yml",380,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","api/toc.yml",383,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter`1'","api/toc.yml",385,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.Typed_InjectionValue'","api/toc.yml",388,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","api/toc.yml",390,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","api/toc.yml",393,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","api/toc.yml",395,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","api/toc.yml",397,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","api/toc.yml",399,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.IFactoryLifetimeManager'","api/toc.yml",401,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.IInstanceLifetimeManager'","api/toc.yml",403,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ILifetimeContainer'","api/toc.yml",405,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ITypeLifetimeManager'","api/toc.yml",407,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeContainer'","api/toc.yml",409,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeManager'","api/toc.yml",411,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeManager.InvalidValue'","api/toc.yml",413,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","api/toc.yml",415,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","api/toc.yml",417,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","api/toc.yml",419,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SynchronizedLifetimeManager'","api/toc.yml",421,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","api/toc.yml",423,10] -["warning","xref-not-found","Cross reference not found: 'Unity.ObjectBuilder.BuildPlan.DynamicMethod'","api/toc.yml",425,8] -["warning","xref-not-found","Cross reference not found: 'Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicBuildPlanGenerationContext'","api/toc.yml",428,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy'","api/toc.yml",430,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.DefaultPolicies'","api/toc.yml",433,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IBuildPlanCreatorPolicy'","api/toc.yml",435,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IBuildPlanPolicy'","api/toc.yml",437,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IPolicyList'","api/toc.yml",439,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IPolicySet'","api/toc.yml",441,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IResolveDelegateFactory'","api/toc.yml",443,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.PolicySetExtensions'","api/toc.yml",445,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.ResolveDelegateFactory'","api/toc.yml",447,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors'","api/toc.yml",449,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ConstructorDiagnostic'","api/toc.yml",452,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ConstructorProcessor'","api/toc.yml",454,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.FieldDiagnostic'","api/toc.yml",456,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.FieldProcessor'","api/toc.yml",458,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MemberProcessor'","api/toc.yml",460,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MemberProcessor`2'","api/toc.yml",462,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MethodDiagnostic'","api/toc.yml",465,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MethodProcessor'","api/toc.yml",467,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ParametersProcessor`1'","api/toc.yml",469,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.PropertyDiagnostic'","api/toc.yml",472,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.PropertyProcessor'","api/toc.yml",474,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Registration'","api/toc.yml",476,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Registration.ContainerRegistration'","api/toc.yml",479,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Registration.InternalRegistration'","api/toc.yml",481,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution'","api/toc.yml",483,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","api/toc.yml",486,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride`1'","api/toc.yml",488,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.FieldOverride'","api/toc.yml",491,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolve'","api/toc.yml",493,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolveContext'","api/toc.yml",495,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolverFactory`1'","api/toc.yml",497,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.NamedType'","api/toc.yml",500,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ParameterOverride'","api/toc.yml",502,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ParameterOverrides'","api/toc.yml",504,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.PropertyOverride'","api/toc.yml",506,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolveDelegate`1'","api/toc.yml",508,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolverFactory`1'","api/toc.yml",511,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolverOverride'","api/toc.yml",514,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.TypeBasedOverride'","api/toc.yml",516,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.TypeBasedOverride`1'","api/toc.yml",518,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Selection'","api/toc.yml",521,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Selection.ConstructorSelection'","api/toc.yml",524,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Selection.SelectionStage'","api/toc.yml",526,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Selection.SelectorDelegate`3'","api/toc.yml",528,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage'","api/toc.yml",531,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.IRegistry`2'","api/toc.yml",534,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.IStagedStrategyChain`2'","api/toc.yml",537,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.LinkedNode`2'","api/toc.yml",540,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicyEntry'","api/toc.yml",543,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicyList'","api/toc.yml",545,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet'","api/toc.yml",547,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet.Policy'","api/toc.yml",549,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet.PolicySetDebugProxy'","api/toc.yml",551,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.QuickSet`1'","api/toc.yml",553,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.RegistrationSet'","api/toc.yml",556,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.RegistrationSet.Entry'","api/toc.yml",558,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.StagedStrategyChain`2'","api/toc.yml",560,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.StagedStrategyChainExtensions'","api/toc.yml",563,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies'","api/toc.yml",565,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.ArrayResolveStrategy'","api/toc.yml",568,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuilderStrategy'","api/toc.yml",570,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuildKeyMappingStrategy'","api/toc.yml",572,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuildPlanStrategy'","api/toc.yml",574,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.LifetimeStrategy'","api/toc.yml",576,10] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] -["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] -["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] -["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] -["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] -["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.SelectionStage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.DefaultPolicies.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.RegisterInstanceEventArgs.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.UnityContainerExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.MemberSelector-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.IFactoryLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.IInstanceLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IBuildPlanPolicy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicyEntry.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.Typed_InjectionValue.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IResolveDelegateFactory.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedParameter-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.DependencyOverride-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.LinkedNode-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.DictionaryExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderStage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.IRegistry-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Invoke.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.ArrayResolveStrategy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.UnityBuildStage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolveContext.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Inject.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.TypeLifetime.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.SelectionStage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.IDefaultPolicy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ExtensionElementMap.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.IllegalInjectionMethodException.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.IValueProvidingElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolverImpl.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.ContainerRegistration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.MemberInfoBase-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.ConfigurationElementExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.FactoryLifetime.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.TransientLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolveDelegate-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MemberProcessor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.Policy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Override.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericResolvedArrayParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.NamedTypeBuildKey.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IPolicySet.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Storage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.DependencyOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.PerThreadLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuilderStrategy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IPolicyList.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolve.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ObjectBuilder.BuildPlan.DynamicMethod.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IContainerRegistration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.IBuildPlanCreatorPolicy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Diagnostic.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.PolicySetDebugProxy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.QuickSet-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.DependencyMissingException.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.NamedTypeBuildKey-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.PerResolveLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ConfigurationElementExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.SelectorDelegate-3.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeContainer.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.UnityContainerExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Exceptions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ParameterOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.SectionExtension.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.SupportedMembers.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolve.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.PropertyOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ExternallyControlledLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ExtensionExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMatching.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.SynchronizedLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.RegistrationSet.Entry.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Registration.InternalRegistration.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ITypeLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Collections.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicBuildPlanGenerationContext.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.SectionExtensionContext.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DiagnosticExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.DictionaryExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuildKeyMappingStrategy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.Legacy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.ValueElementHelper.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.TypeBasedOverride-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Factories.EnumerableResolver.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolverFactory-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.ChildContainerCreatedEventArgs.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.TypeResolverImpl.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ResolutionFailedException.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.UnityContainerExtension.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.IUnityContainerExtensionConfigurator.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ForceCompillation.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DefaultLifetime.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ParameterBase.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicySet.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.TypeBasedOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MemberProcessor-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ParameterOverrides.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.MethodBase-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMember-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.RegistrationElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.PolicyList.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AssemblyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ParametersProcessor-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMethod.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.PropertyProcessor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionConstructor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.FieldProcessor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.NamedElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.IResolverFactory-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.PropertyDiagnostic.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionField.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ContainerControlledTransientManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.FieldDiagnostic.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConstructorElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainer.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConstructorElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionProperty.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AliasElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InstanceElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionMember.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.GenericBase.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.ParameterValueElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AssemblyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.ContainerConfiguringElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerExtensionElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.FieldOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ArrayElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AliasElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.MethodElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.RegisterElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.LifetimeElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InstanceElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.SectionExtensionElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerExtensionElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.LifetimeElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ConfigurationHelpers.TypeResolver.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.PropertyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.SectionExtensionElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.RegisterEventArgs.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DependencyAttribute.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.Injection_ParameterValue.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.InjectionParameter-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.ExecutePlanDelegate.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ValueElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Storage.ElementHandlerMap-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.ResolverOverride.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.DependencyResolutionAttribute.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.PropertyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.ResolveDelegateFactory.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ArrayElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Collections.RegistrationElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.ConstructorSelection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainerAsyncExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterValueElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ContainerControlledLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MethodProcessor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ConstructorProcessor.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.UnityContainerExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.XmlWriterExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.BuildPlanStrategy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.ILifetimeContainer.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.XmlWriterExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.IStagedStrategyChain-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.MethodElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElementCollectionBase-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerConfiguringElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.ResolvePlanDelegate.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InstanceLifetime.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.ConstructorDiagnostic.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Selection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Events.NamedEventArgs.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InstanceElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.UnknownElementHandlerMap-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolver.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Extensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerExtensionElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ParameterValue.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedArrayParameter-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.StagedStrategyChainExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AssemblyElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerExtensionElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InjectionConstructorAttribute.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.SectionExtensionElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamespaceElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.OptionalDependencyAttribute.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.NamespaceElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.UnityConfigurationSection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.RegisterElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.ForceActivation.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Extension.IExtensionContext.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.DeserializableConfigurationElementCollection-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.LifetimeManager.InvalidValue.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.RegisterElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.DependencyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ValueElementHelper.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InjectionMemberElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerConfiguringElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalParameter-1.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Strategies.LifetimeStrategy.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Resolution.NamedType.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.StagedStrategyChain-2.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.OptionalGenericParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Injection.ResolvedArrayParameter.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.AliasElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ParameterElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamespaceElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.HierarchicalLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.RegisterElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.NamedElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.DependencyElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.InjectionMemberElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.FieldElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Processors.MethodDiagnostic.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.NamespaceElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ParameterValueElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Factories.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.OptionalElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.InjectionMethodAttribute.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.Abstractions.InjectionMemberElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ContainerElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.OptionalElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.UnityConfigurationSection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Builder.BuilderContext.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ValueElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AliasElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.InstanceElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.AssemblyElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.SectionExtensionElementCollection.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Storage.RegistrationSet.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElement.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Policy.PolicySetExtensions.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IUnityContainer.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.IUnityContainerAsync.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Lifetime.SingletonLifetimeManager.yml",1,1] -["error","schema-not-found","Unknown schema 'ManagedReference'","api/Unity.Configuration.ContainerElement.yml",1,1] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration'","api/toc.yml",2,8] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AliasElement'","api/toc.yml",5,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AliasElementCollection'","api/toc.yml",7,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ArrayElement'","api/toc.yml",9,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AssemblyElement'","api/toc.yml",11,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.AssemblyElementCollection'","api/toc.yml",13,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConstructorElement'","api/toc.yml",15,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerConfiguringElementCollection'","api/toc.yml",17,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerElement'","api/toc.yml",19,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerElementCollection'","api/toc.yml",21,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerExtensionElement'","api/toc.yml",23,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ContainerExtensionElementCollection'","api/toc.yml",25,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.DependencyElement'","api/toc.yml",27,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElement'","api/toc.yml",29,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElementCollection'","api/toc.yml",31,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InjectionMemberElementCollection'","api/toc.yml",33,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InstanceElement'","api/toc.yml",35,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.InstanceElementCollection'","api/toc.yml",37,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.LifetimeElement'","api/toc.yml",39,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.MethodElement'","api/toc.yml",41,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamedElement'","api/toc.yml",43,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamespaceElement'","api/toc.yml",45,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.NamespaceElementCollection'","api/toc.yml",47,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.OptionalElement'","api/toc.yml",49,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterElement'","api/toc.yml",51,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterElementCollection'","api/toc.yml",53,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ParameterValueElementCollection'","api/toc.yml",55,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.PropertyElement'","api/toc.yml",57,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.RegisterElement'","api/toc.yml",59,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.RegisterElementCollection'","api/toc.yml",61,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.SectionExtensionElement'","api/toc.yml",63,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.SectionExtensionElementCollection'","api/toc.yml",65,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.UnityConfigurationSection'","api/toc.yml",67,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.UnityContainerExtensions'","api/toc.yml",69,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ValueElement'","api/toc.yml",71,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers'","api/toc.yml",73,8] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ConfigurationElementExtensions'","api/toc.yml",76,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.DictionaryExtensions'","api/toc.yml",78,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolver'","api/toc.yml",80,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolverImpl'","api/toc.yml",82,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.UnknownElementHandlerMap`1'","api/toc.yml",84,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ValueElementHelper'","api/toc.yml",87,10] -["warning","xref-not-found","Cross reference not found: 'Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.XmlWriterExtensions'","api/toc.yml",89,10] -["warning","xref-not-found","Cross reference not found: 'Unity'","api/toc.yml",91,8] -["warning","xref-not-found","Cross reference not found: 'Unity.DefaultLifetime'","api/toc.yml",94,10] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","api/toc.yml",96,10] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyResolutionAttribute'","api/toc.yml",98,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Diagnostic'","api/toc.yml",100,10] -["warning","xref-not-found","Cross reference not found: 'Unity.DiagnosticExtensions'","api/toc.yml",102,10] -["warning","xref-not-found","Cross reference not found: 'Unity.ExtensionExtensions'","api/toc.yml",104,10] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","api/toc.yml",106,10] -["warning","xref-not-found","Cross reference not found: 'Unity.ForceActivation'","api/toc.yml",108,10] -["warning","xref-not-found","Cross reference not found: 'Unity.ForceCompillation'","api/toc.yml",110,10] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","api/toc.yml",112,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Inject'","api/toc.yml",114,10] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","api/toc.yml",116,10] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","api/toc.yml",118,10] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","api/toc.yml",120,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","api/toc.yml",122,10] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","api/toc.yml",124,10] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainerAsync'","api/toc.yml",126,10] -["warning","xref-not-found","Cross reference not found: 'Unity.MemberSelector`2'","api/toc.yml",128,10] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","api/toc.yml",131,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Override'","api/toc.yml",133,10] -["warning","xref-not-found","Cross reference not found: 'Unity.ResolutionFailedException'","api/toc.yml",135,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolve'","api/toc.yml",137,10] -["warning","xref-not-found","Cross reference not found: 'Unity.SupportedMembers'","api/toc.yml",139,10] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","api/toc.yml",141,10] -["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainer'","api/toc.yml",143,10] -["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainerAsyncExtensions'","api/toc.yml",145,10] -["warning","xref-not-found","Cross reference not found: 'Unity.UnityContainerExtensions'","api/toc.yml",147,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder'","api/toc.yml",149,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext'","api/toc.yml",152,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext.ExecutePlanDelegate'","api/toc.yml",154,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderContext.ResolvePlanDelegate'","api/toc.yml",156,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.BuilderStage'","api/toc.yml",158,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.NamedTypeBuildKey'","api/toc.yml",160,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.NamedTypeBuildKey`1'","api/toc.yml",162,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.SelectionStage'","api/toc.yml",165,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Builder.UnityBuildStage'","api/toc.yml",167,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration'","api/toc.yml",169,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AliasElement'","api/toc.yml",172,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AliasElementCollection'","api/toc.yml",174,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ArrayElement'","api/toc.yml",176,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AssemblyElement'","api/toc.yml",178,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.AssemblyElementCollection'","api/toc.yml",180,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConstructorElement'","api/toc.yml",182,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerConfiguringElementCollection'","api/toc.yml",184,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerElement'","api/toc.yml",186,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerElementCollection'","api/toc.yml",188,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerExtensionElement'","api/toc.yml",190,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ContainerExtensionElementCollection'","api/toc.yml",192,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.DependencyElement'","api/toc.yml",194,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ExtensionElementMap'","api/toc.yml",196,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.FieldElement'","api/toc.yml",198,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.IDefaultPolicy'","api/toc.yml",200,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InjectionMemberElementCollection'","api/toc.yml",202,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InstanceElement'","api/toc.yml",204,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.InstanceElementCollection'","api/toc.yml",206,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.LifetimeElement'","api/toc.yml",208,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.MethodElement'","api/toc.yml",210,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.NamespaceElement'","api/toc.yml",212,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.NamespaceElementCollection'","api/toc.yml",214,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.OptionalElement'","api/toc.yml",216,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterElement'","api/toc.yml",218,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterElementCollection'","api/toc.yml",220,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ParameterValueElementCollection'","api/toc.yml",222,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.PropertyElement'","api/toc.yml",224,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.RegisterElement'","api/toc.yml",226,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.RegisterElementCollection'","api/toc.yml",228,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.SectionExtensionElement'","api/toc.yml",230,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.SectionExtensionElementCollection'","api/toc.yml",232,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.UnityConfigurationSection'","api/toc.yml",234,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.UnityContainerExtensions'","api/toc.yml",236,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ValueElement'","api/toc.yml",238,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions'","api/toc.yml",240,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.ContainerConfiguringElement'","api/toc.yml",243,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElement'","api/toc.yml",245,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElementCollection`1'","api/toc.yml",247,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.DeserializableConfigurationElementCollectionBase`1'","api/toc.yml",250,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.InjectionMemberElement'","api/toc.yml",253,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.IValueProvidingElement'","api/toc.yml",255,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.NamedElement'","api/toc.yml",257,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.ParameterValueElement'","api/toc.yml",259,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.RegistrationElement'","api/toc.yml",261,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.SectionExtension'","api/toc.yml",263,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Abstractions.SectionExtensionContext'","api/toc.yml",265,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Collections'","api/toc.yml",267,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Collections.RegistrationElementCollection'","api/toc.yml",270,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers'","api/toc.yml",272,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.TypeResolver'","api/toc.yml",275,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.TypeResolverImpl'","api/toc.yml",277,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.ConfigurationHelpers.ValueElementHelper'","api/toc.yml",279,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions'","api/toc.yml",281,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.ConfigurationElementExtensions'","api/toc.yml",284,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.DictionaryExtensions'","api/toc.yml",286,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Extensions.XmlWriterExtensions'","api/toc.yml",288,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Storage'","api/toc.yml",290,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Configuration.Storage.ElementHandlerMap`1'","api/toc.yml",293,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Events'","api/toc.yml",296,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Events.ChildContainerCreatedEventArgs'","api/toc.yml",299,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Events.NamedEventArgs'","api/toc.yml",301,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Events.RegisterEventArgs'","api/toc.yml",303,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Events.RegisterInstanceEventArgs'","api/toc.yml",305,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions'","api/toc.yml",307,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions.DependencyMissingException'","api/toc.yml",310,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Exceptions.IllegalInjectionMethodException'","api/toc.yml",312,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Extension'","api/toc.yml",314,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Extension.IExtensionContext'","api/toc.yml",317,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Extension.IUnityContainerExtensionConfigurator'","api/toc.yml",319,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Extension.Legacy'","api/toc.yml",321,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Extension.UnityContainerExtension'","api/toc.yml",323,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Factories'","api/toc.yml",325,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Factories.EnumerableResolver'","api/toc.yml",328,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","api/toc.yml",330,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericBase'","api/toc.yml",333,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericParameter'","api/toc.yml",335,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.GenericResolvedArrayParameter'","api/toc.yml",337,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.Injection_ParameterValue'","api/toc.yml",339,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","api/toc.yml",341,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionField'","api/toc.yml",343,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMatching'","api/toc.yml",345,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","api/toc.yml",347,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember`2'","api/toc.yml",349,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMethod'","api/toc.yml",352,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionParameter'","api/toc.yml",354,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionParameter`1'","api/toc.yml",356,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionProperty'","api/toc.yml",359,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.MemberInfoBase`1'","api/toc.yml",361,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.MethodBase`1'","api/toc.yml",364,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalGenericParameter'","api/toc.yml",367,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalParameter'","api/toc.yml",369,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.OptionalParameter`1'","api/toc.yml",371,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ParameterBase'","api/toc.yml",374,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ParameterValue'","api/toc.yml",376,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedArrayParameter'","api/toc.yml",378,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedArrayParameter`1'","api/toc.yml",380,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","api/toc.yml",383,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter`1'","api/toc.yml",385,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.Typed_InjectionValue'","api/toc.yml",388,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","api/toc.yml",390,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","api/toc.yml",393,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","api/toc.yml",395,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","api/toc.yml",397,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","api/toc.yml",399,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.IFactoryLifetimeManager'","api/toc.yml",401,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.IInstanceLifetimeManager'","api/toc.yml",403,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ILifetimeContainer'","api/toc.yml",405,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ITypeLifetimeManager'","api/toc.yml",407,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeContainer'","api/toc.yml",409,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeManager'","api/toc.yml",411,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.LifetimeManager.InvalidValue'","api/toc.yml",413,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","api/toc.yml",415,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","api/toc.yml",417,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","api/toc.yml",419,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SynchronizedLifetimeManager'","api/toc.yml",421,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","api/toc.yml",423,10] -["warning","xref-not-found","Cross reference not found: 'Unity.ObjectBuilder.BuildPlan.DynamicMethod'","api/toc.yml",425,8] -["warning","xref-not-found","Cross reference not found: 'Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicBuildPlanGenerationContext'","api/toc.yml",428,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy'","api/toc.yml",430,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.DefaultPolicies'","api/toc.yml",433,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IBuildPlanCreatorPolicy'","api/toc.yml",435,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IBuildPlanPolicy'","api/toc.yml",437,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IPolicyList'","api/toc.yml",439,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IPolicySet'","api/toc.yml",441,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.IResolveDelegateFactory'","api/toc.yml",443,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.PolicySetExtensions'","api/toc.yml",445,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Policy.ResolveDelegateFactory'","api/toc.yml",447,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors'","api/toc.yml",449,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ConstructorDiagnostic'","api/toc.yml",452,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ConstructorProcessor'","api/toc.yml",454,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.FieldDiagnostic'","api/toc.yml",456,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.FieldProcessor'","api/toc.yml",458,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MemberProcessor'","api/toc.yml",460,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MemberProcessor`2'","api/toc.yml",462,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MethodDiagnostic'","api/toc.yml",465,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.MethodProcessor'","api/toc.yml",467,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.ParametersProcessor`1'","api/toc.yml",469,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.PropertyDiagnostic'","api/toc.yml",472,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Processors.PropertyProcessor'","api/toc.yml",474,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Registration'","api/toc.yml",476,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Registration.ContainerRegistration'","api/toc.yml",479,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Registration.InternalRegistration'","api/toc.yml",481,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution'","api/toc.yml",483,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","api/toc.yml",486,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride`1'","api/toc.yml",488,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.FieldOverride'","api/toc.yml",491,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolve'","api/toc.yml",493,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolveContext'","api/toc.yml",495,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.IResolverFactory`1'","api/toc.yml",497,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.NamedType'","api/toc.yml",500,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ParameterOverride'","api/toc.yml",502,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ParameterOverrides'","api/toc.yml",504,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.PropertyOverride'","api/toc.yml",506,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolveDelegate`1'","api/toc.yml",508,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolverFactory`1'","api/toc.yml",511,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.ResolverOverride'","api/toc.yml",514,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.TypeBasedOverride'","api/toc.yml",516,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.TypeBasedOverride`1'","api/toc.yml",518,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Selection'","api/toc.yml",521,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Selection.ConstructorSelection'","api/toc.yml",524,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Selection.SelectionStage'","api/toc.yml",526,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Selection.SelectorDelegate`3'","api/toc.yml",528,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage'","api/toc.yml",531,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.IRegistry`2'","api/toc.yml",534,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.IStagedStrategyChain`2'","api/toc.yml",537,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.LinkedNode`2'","api/toc.yml",540,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicyEntry'","api/toc.yml",543,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicyList'","api/toc.yml",545,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet'","api/toc.yml",547,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet.Policy'","api/toc.yml",549,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.PolicySet.PolicySetDebugProxy'","api/toc.yml",551,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.QuickSet`1'","api/toc.yml",553,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.RegistrationSet'","api/toc.yml",556,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.RegistrationSet.Entry'","api/toc.yml",558,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.StagedStrategyChain`2'","api/toc.yml",560,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Storage.StagedStrategyChainExtensions'","api/toc.yml",563,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies'","api/toc.yml",565,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.ArrayResolveStrategy'","api/toc.yml",568,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuilderStrategy'","api/toc.yml",570,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuildKeyMappingStrategy'","api/toc.yml",572,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.BuildPlanStrategy'","api/toc.yml",574,10] -["warning","xref-not-found","Cross reference not found: 'Unity.Strategies.LifetimeStrategy'","api/toc.yml",576,10] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Mapping/mapping.md",14,88] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/thread.md",8,60] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerThreadLifetimeManager'","tutorials/lifetime/thread.md",12,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/thread.md",34,38] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/thread.md",34,111] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",14,41] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/annotation.md",18,157] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",18,30] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.PerResolveLifetimeManager'","tutorials/lifetime/resolve.md",36,39] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.HierarchicalLifetimeManager'","tutorials/lifetime/hierarchical.md",16,40] -["warning","xref-not-found","Cross reference not found: 'System.IDisposable'","tutorials/lifetime/container_transient.md",10,108] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/Annotation/annotation.md",26,67] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.TransientLifetimeManager'","tutorials/lifetime/transient.md",18,100] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",8,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","tutorials/lifetime/lifetime.md",8,64] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/resolve.md",58,38] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/hierarchical.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledTransientManager'","tutorials/lifetime/container_transient.md",16,51] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",11,74] -["warning","xref-not-found","Cross reference not found: 'Unity.OptionalDependencyAttribute'","tutorials/Annotation/annotation.md",26,115] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/lifetime/transient.md",27,19] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ContainerControlledLifetimeManager'","tutorials/lifetime/container.md",14,42] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/design.md",27,171] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,31] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.ExternallyControlledLifetimeManager'","tutorials/lifetime/external.md",14,36] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/instance.md",14,5] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",12,131] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",10,131] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Extensions/diagnostic.md",68,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",10,4] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",11,176] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",10,169] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",42,30] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",14,49] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,90] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,32] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Annotation/constructor.md",12,169] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",10,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime.SingletonLifetimeManager'","tutorials/lifetime/singleton.md",12,41] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/registration/Type/Constructor/constructor.md",36,28] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",17,19] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/resolve.md",58,112] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/hierarchical.md",38,114] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container_transient.md",38,38] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",35,33] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/annotation.md",26,322] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/container.md",44,38] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/Composition/Resolution/type.md",8,377] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",52,5] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",14,71] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",18,102] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",22,4] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Selection/constructor.md",24,64] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",46,8] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/quickstart.md",13,91] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_count.md",18,163] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",8,121] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/registration.md",39,167] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionConstructorAttribute'","tutorials/Annotation/constructor.md",22,136] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,60] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/lifetime/singleton.md",46,38] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",40,46] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,28] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container_transient.md",38,123] -["warning","xref-not-found","Cross reference not found: 'Unity.InjectionMethodAttribute'","tutorials/Annotation/method.md",70,84] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/container.md",44,111] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",54,23] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",24,24] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/Composition/Selection/constructor.md",32,30] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",53,4] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","articles/introduction.md",50,1] -["warning","xref-not-found","Cross reference not found: 'System.Object'","articles/quickstart.md",55,91] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.ResolvedParameter'","tutorials/registration/Type/Constructor/param_count.md",50,181] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,30] -["warning","xref-not-found","Cross reference not found: 'Unity.IUnityContainer'","tutorials/registration/registration.md",39,323] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Annotation/constructor.md",28,122] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",14,128] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","tutorials/lifetime/singleton.md",46,108] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",42,146] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/Composition/Overrides/dependency.md",21,130] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/container.md",44,197] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",61,5] -["warning","codesnippet-not-found","Cannot resolve '../../src/SpecificationTests/src/Constructor/Attribute/Setup.cs' relative to 'tutorials/Annotation/constructor.md'.","tutorials/Annotation/constructor.md",26,1] -["warning","xref-not-found","Cross reference not found: 'Unity.IContainerRegistration'","tutorials/registration/metadata.md",69,4] -["warning","xref-not-found","Cross reference not found: 'System.String'","articles/quickstart.md",55,207] -["warning","xref-not-found","Cross reference not found: 'Unity.DependencyAttribute'","tutorials/registration/Type/Constructor/param_count.md",52,114] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",12,108] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,220] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/lifetime/singleton.md",46,191] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,86] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",21,255] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",63,59] -["warning","xref-not-found","Cross reference not found: 'Unity.Lifetime'","articles/quickstart.md",131,87] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",20,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/param_none.md",12,138] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",20,299] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,120] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",25,193] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",72,5] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","articles/quickstart.md",133,3] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",24,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",16,24] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,8] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,200] -["warning","xref-not-found","Cross reference not found: 'Unity.Resolution.DependencyOverride'","tutorials/Composition/Overrides/dependency.md",29,1] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","articles/quickstart.md",134,3] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",30,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",29,92] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",22,292] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionConstructor'","tutorials/registration/Type/Constructor/constructor.md",46,412] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",74,64] -["warning","xref-not-found","Cross reference not found: 'Unity.FactoryLifetime'","articles/quickstart.md",135,3] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",36,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",50,117] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/registration.md",49,82] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",46,542] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/constructor.md",48,13] -["warning","xref-not-found","Cross reference not found: 'Unity.Invoke'","tutorials/registration/Type/Constructor/constructor.md",55,26] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",58,34] -["warning","xref-not-found","Cross reference not found: 'Unity.TypeLifetime'","tutorials/registration/Type/registration.md",67,50] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",40,1] -["warning","xref-not-found","Cross reference not found: 'System.Type'","tutorials/registration/Type/Constructor/param_none.md",62,34] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection.InjectionMember'","tutorials/registration/Type/registration.md",83,91] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,209] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",44,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",18,1] -["warning","xref-not-found","Cross reference not found: 'Unity.Injection'","tutorials/registration/Type/registration.md",87,231] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,293] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",54,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",31,1] -["warning","xref-not-found","Cross reference not found: 'Tutorial.Registration.Mapping'","tutorials/registration/Type/registration.md",63,26] -["warning","xref-not-found","Cross reference not found: 'Unity.InstanceLifetime'","tutorials/registration/instance.md",80,414] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/ByCount.cs' relative to 'tutorials/registration/Type/Constructor/param_count.md'.","tutorials/registration/Type/Constructor/param_count.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",40,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Setup.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",52,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",60,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",64,1] -["warning","codesnippet-not-found","Cannot resolve '../../../../src/SpecificationTests/src/Constructor/Injection/Default.cs' relative to 'tutorials/registration/Type/Constructor/param_none.md'.","tutorials/registration/Type/Constructor/param_none.md",70,1] diff --git a/_site/.links.json b/_site/.links.json deleted file mode 100644 index 68184b8..0000000 --- a/_site/.links.json +++ /dev/null @@ -1 +0,0 @@ -{"links":[{"source_url":"/articles/changelog/","target_url":"https://github.com/quintonn"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/abstractions/issues/102"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/abstractions/issues/90"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/abstractions/issues/97"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/container/issues/35"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/examples/blob/master/src/Extending%20Unity/BuildPlan/FooBuildPlanPolicy.cs"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/examples/blob/master/src/Extending%20Unity/BuildPlan/FooUnityExtension.cs"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/examples/blob/master/src/Extending%20Unity/BuildPlanCreator/FooBuildPlanCreatorPolicy.cs"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/examples/blob/master/src/Extending%20Unity/BuildPlanCreator/FooUnityExtension.cs"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/examples/tree/master/src/Extending%20Unity"},{"source_url":"/articles/changelog/","target_url":"https://github.com/unitycontainer/microsoft-logging/blob/master/src/LoggingExtension.cs"},{"source_url":"/articles/design/","target_url":"/articles/application/"},{"source_url":"/articles/design/","target_url":"https://en.wikipedia.org/wiki/Dependency_injection"},{"source_url":"/articles/design/","target_url":"https://en.wikipedia.org/wiki/Inversion_of_control"},{"source_url":"/articles/design/","target_url":"https://www.nuget.org/packages/Unity.Abstractions/"},{"source_url":"/articles/design/","target_url":"https://www.nuget.org/packages/Unity.Container/"},{"source_url":"/articles/design/","target_url":"https://www.nuget.org/packages/Unity/"},{"source_url":"/articles/design/","target_url":"https://www.nuget.org/packages?q=unitycontainer"},{"source_url":"/articles/history/","target_url":"https://archive.codeplex.com/?p=unity"},{"source_url":"/articles/history/","target_url":"https://docs.microsoft.com/en-us/previous-versions/msp-n-p/dn170416(v%3dpandp.10)"},{"source_url":"/articles/history/","target_url":"https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff647347(v%3dpandp.10)"},{"source_url":"/articles/history/","target_url":"https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff649080(v%3dpandp.10)"},{"source_url":"/articles/history/","target_url":"https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff663144(v%3dpandp.10)"},{"source_url":"/articles/history/","target_url":"https://docs.microsoft.com/en-us/previous-versions/msp-n-p/hh237492(v%3dpandp.10)"},{"source_url":"/articles/installation/","target_url":"https://docs.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files#floating-versions"},{"source_url":"/articles/installation/","target_url":"https://prismlibrary.github.io/"},{"source_url":"/articles/installation/","target_url":"https://www.nuget.org/packages/Unity"},{"source_url":"/articles/installation/","target_url":"https://www.nuget.org/packages/Unity.Abstractions/"},{"source_url":"/articles/installation/","target_url":"https://www.nuget.org/packages/Unity.Container/"},{"source_url":"/articles/installation/","target_url":"https://www.nuget.org/packages/Unity/"},{"source_url":"/articles/introduction/","target_url":"#managing-the-lifetime-of-objects"},{"source_url":"/articles/introduction/","target_url":"#populating-collections"},{"source_url":"/articles/introduction/","target_url":"#registering-types-and-object-instances"},{"source_url":"/articles/introduction/","target_url":"#specifying-values-for-injection"},{"source_url":"/articles/introduction/","target_url":"#support-for-deferred-resolution"},{"source_url":"/articles/introduction/","target_url":"#the-types-of-objects-unity-can-create"},{"source_url":"/articles/introduction/","target_url":"https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/new-operator"},{"source_url":"/articles/introduction/","target_url":"https://en.wikipedia.org/wiki/Inversion_of_control"},{"source_url":"/articles/introduction/","target_url":"https://en.wikipedia.org/wiki/Open_source"},{"source_url":"/articles/introduction/","target_url":"https://github.com/unitycontainer/unity/blob/master/LICENSE"},{"source_url":"/articles/quickstart/","target_url":"/tutorials/composition/mapping/mapping/"},{"source_url":"/articles/quickstart/","target_url":"/tutorials/composition/selection/selection/"},{"source_url":"/articles/quickstart/","target_url":"/tutorials/lifetime/lifetime/"},{"source_url":"/articles/toc.json","target_url":"/articles/application/"},{"source_url":"/articles/toc.json","target_url":"/articles/changelog/"},{"source_url":"/articles/toc.json","target_url":"/articles/design/"},{"source_url":"/articles/toc.json","target_url":"/articles/features/"},{"source_url":"/articles/toc.json","target_url":"/articles/installation/"},{"source_url":"/articles/toc.json","target_url":"/articles/introduction/"},{"source_url":"/articles/toc.json","target_url":"/articles/quickstart/"},{"source_url":"/readme/","target_url":"https://ci.appveyor.com/api/projects/status/50hjsoi3gqu1becr?svg=true"},{"source_url":"/readme/","target_url":"https://ci.appveyor.com/project/unitycontainer/documentation"},{"source_url":"/readme/","target_url":"https://github.com/unitycontainer/documentation"},{"source_url":"/readme/","target_url":"https://unitycontainer.github.io"},{"source_url":"/specs/toc.json","target_url":"/specs/field/"},{"source_url":"/specs/toc.json","target_url":"/specs/method/"},{"source_url":"/specs/toc.json","target_url":"/specs/property/"},{"source_url":"/specs/toc.json","target_url":"/specs/specification/"},{"source_url":"/toc.json","target_url":"/articles/application/"},{"source_url":"/toc.json","target_url":"/articles/changelog/"},{"source_url":"/toc.json","target_url":"/articles/design/"},{"source_url":"/toc.json","target_url":"/articles/features/"},{"source_url":"/toc.json","target_url":"/articles/installation/"},{"source_url":"/toc.json","target_url":"/articles/introduction/"},{"source_url":"/toc.json","target_url":"/articles/quickstart/"},{"source_url":"/toc.json","target_url":"/tutorials/annotation/constructor/"},{"source_url":"/toc.json","target_url":"/tutorials/annotation/field/"},{"source_url":"/toc.json","target_url":"/tutorials/annotation/method/"},{"source_url":"/toc.json","target_url":"/tutorials/annotation/parameter/"},{"source_url":"/toc.json","target_url":"/tutorials/annotation/property/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/buildup/buildup/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/collections/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/generics/deferred/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/generics/lazy/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/generics/metadata/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/mapping/generic/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/mapping/implementation/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/overrides/dependency/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/overrides/field/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/overrides/parameter/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/overrides/property/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/resolution/resolution/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/resolution/type/"},{"source_url":"/toc.json","target_url":"/tutorials/composition/selection/constructor/"},{"source_url":"/toc.json","target_url":"/tutorials/extensions/activation/"},{"source_url":"/toc.json","target_url":"/tutorials/extensions/compilation/"},{"source_url":"/toc.json","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/toc.json","target_url":"/tutorials/extensions/legacy/"},{"source_url":"/toc.json","target_url":"/tutorials/hierarchies/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/container/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/external/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/toc.json","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/factory/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/instance/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/metadata/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/field/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/injection/default/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/injection/injected/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/injection/resolved/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/method/"},{"source_url":"/toc.json","target_url":"/tutorials/registration/type/property/"},{"source_url":"/tutorials/annotation/annotation/","target_url":"/tutorials/annotation/constructor/"},{"source_url":"/tutorials/annotation/annotation/","target_url":"/tutorials/annotation/field/"},{"source_url":"/tutorials/annotation/annotation/","target_url":"/tutorials/annotation/method/"},{"source_url":"/tutorials/annotation/annotation/","target_url":"/tutorials/annotation/parameter/"},{"source_url":"/tutorials/annotation/annotation/","target_url":"/tutorials/annotation/property/"},{"source_url":"/tutorials/annotation/constructor/","target_url":"/tutorials/composition/selection/constructor/"},{"source_url":"/tutorials/annotation/constructor/","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/annotation/constructor/","target_url":"/tutorials/registration/type/constructor/constructor/"},{"source_url":"/tutorials/annotation/method/","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/composition/composition/","target_url":"/tutorials/composition/resolution/resolution/"},{"source_url":"/tutorials/composition/overrides/override/","target_url":"/images/resolver-override.png"},{"source_url":"/tutorials/composition/overrides/override/","target_url":"/tutorials/composition/overrides/dependency/"},{"source_url":"/tutorials/composition/overrides/override/","target_url":"/tutorials/composition/overrides/field/"},{"source_url":"/tutorials/composition/overrides/override/","target_url":"/tutorials/composition/overrides/parameter/"},{"source_url":"/tutorials/composition/overrides/override/","target_url":"/tutorials/composition/overrides/property/"},{"source_url":"/tutorials/composition/resolution/resolution/","target_url":"/tutorials/composition/collections/"},{"source_url":"/tutorials/composition/resolution/resolution/","target_url":"/tutorials/composition/generics/deferred/"},{"source_url":"/tutorials/composition/resolution/resolution/","target_url":"/tutorials/composition/generics/generics/"},{"source_url":"/tutorials/composition/resolution/resolution/","target_url":"/tutorials/composition/overrides/override/"},{"source_url":"/tutorials/composition/resolution/resolution/","target_url":"/tutorials/composition/resolution/type/"},{"source_url":"/tutorials/composition/selection/constructor/","target_url":"/tutorials/annotation/annotation/"},{"source_url":"/tutorials/composition/selection/constructor/","target_url":"/tutorials/annotation/constructor/"},{"source_url":"/tutorials/composition/selection/constructor/","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/composition/selection/constructor/","target_url":"/tutorials/registration/metadata/"},{"source_url":"/tutorials/composition/selection/constructor/","target_url":"/tutorials/registration/registration/"},{"source_url":"/tutorials/composition/selection/constructor/","target_url":"/tutorials/registration/type/constructor/constructor/"},{"source_url":"/tutorials/composition/selection/constructor/","target_url":"/tutorials/registration/type/constructor/constructor/#restrictions"},{"source_url":"/tutorials/definitions/","target_url":"https://docs.microsoft.com/en-us/dotnet/standard/generics/#generics_terminology"},{"source_url":"/tutorials/extensions/diagnostic/","target_url":"https://github.com/unitycontainer/container/blob/master/src/Extensions/DiagnosticExtensions.cs"},{"source_url":"/tutorials/lifetime/container/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/container/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/container/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/container/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/container/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/container/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/container/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/registration/factory/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/registration/instance/"},{"source_url":"/tutorials/lifetime/container_transient/","target_url":"/tutorials/registration/type/registration/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/external/","target_url":"/tutorials/registration/instance/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/registration/factory/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/registration/instance/"},{"source_url":"/tutorials/lifetime/hierarchical/","target_url":"/tutorials/registration/type/registration/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/lifetime/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/managers/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/registration/factory/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/registration/instance/"},{"source_url":"/tutorials/lifetime/resolve/","target_url":"/tutorials/registration/type/registration/"},{"source_url":"/tutorials/lifetime/singleton/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/singleton/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/singleton/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/singleton/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/singleton/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/singleton/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/lifetime/singleton/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/registration/factory/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/registration/instance/"},{"source_url":"/tutorials/lifetime/thread/","target_url":"/tutorials/registration/type/registration/"},{"source_url":"/tutorials/lifetime/transient/","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/lifetime/transient/","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/lifetime/transient/","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/lifetime/transient/","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/lifetime/transient/","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/lifetime/transient/","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/lifetime/transient/","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/registration/instance/","target_url":"/tutorials/composition/mapping/mapping/"},{"source_url":"/tutorials/registration/instance/","target_url":"/tutorials/registration/metadata/#name"},{"source_url":"/tutorials/registration/metadata/","target_url":"/tutorials/composition/mapping/mapping/"},{"source_url":"/tutorials/registration/metadata/","target_url":"/tutorials/lifetime/lifetime/"},{"source_url":"/tutorials/registration/metadata/","target_url":"https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection.servicedescriptor.implementationtype"},{"source_url":"/tutorials/registration/metadata/","target_url":"https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection.servicedescriptor.servicetype"},{"source_url":"/tutorials/registration/metadata/","target_url":"https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ee650974(v%3dpandp.10)"},{"source_url":"/tutorials/registration/registration/","target_url":"/tutorials/hierarchies/"},{"source_url":"/tutorials/registration/registration/","target_url":"/tutorials/registration/factory/"},{"source_url":"/tutorials/registration/registration/","target_url":"/tutorials/registration/instance/"},{"source_url":"/tutorials/registration/registration/","target_url":"/tutorials/registration/type/registration/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/composition/selection/constructor/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/registration/type/constructor/constructor/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/tutorials/registration/type/constructor/annotation/","target_url":"/tutorials/registration/type/constructor/param_values/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/annotation/annotation/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/annotation/constructor/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/metadata/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/registration/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/type/constructor/constructor/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/type/constructor/constructor/#restrictions"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/tutorials/registration/type/constructor/automatic/","target_url":"/tutorials/registration/type/constructor/param_values/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/annotation/constructor/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/tutorials/registration/type/constructor/constructor/","target_url":"/tutorials/registration/type/constructor/param_values/"},{"source_url":"/tutorials/registration/type/constructor/param_count/","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/tutorials/registration/type/constructor/param_count/","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/tutorials/registration/type/constructor/param_count/","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/tutorials/registration/type/constructor/param_count/","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/tutorials/registration/type/constructor/param_count/","target_url":"/tutorials/registration/type/constructor/param_values/"},{"source_url":"/tutorials/registration/type/constructor/param_none/","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/registration/type/constructor/param_none/","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/tutorials/registration/type/constructor/param_none/","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/tutorials/registration/type/constructor/param_none/","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/tutorials/registration/type/constructor/param_none/","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/tutorials/registration/type/constructor/param_none/","target_url":"/tutorials/registration/type/constructor/param_values/"},{"source_url":"/tutorials/registration/type/constructor/param_types/","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/tutorials/registration/type/constructor/param_types/","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/tutorials/registration/type/constructor/param_types/","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/tutorials/registration/type/constructor/param_types/","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/tutorials/registration/type/constructor/param_types/","target_url":"/tutorials/registration/type/constructor/param_values/"},{"source_url":"/tutorials/registration/type/constructor/param_values/","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/tutorials/registration/type/constructor/param_values/","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/tutorials/registration/type/constructor/param_values/","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/tutorials/registration/type/constructor/param_values/","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/tutorials/registration/type/constructor/param_values/","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/tutorials/registration/type/registration/","target_url":"/tutorials/lifetime/lifetime/"},{"source_url":"/tutorials/registration/type/registration/","target_url":"/tutorials/registration/type/constructor/constructor/"},{"source_url":"/tutorials/registration/type/registration/","target_url":"/tutorials/registration/type/field/"},{"source_url":"/tutorials/registration/type/registration/","target_url":"/tutorials/registration/type/method/"},{"source_url":"/tutorials/registration/type/registration/","target_url":"/tutorials/registration/type/property/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/annotation/constructor/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/annotation/field/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/annotation/method/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/annotation/parameter/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/annotation/property/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/buildup/buildup/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/collections/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/generics/deferred/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/generics/lazy/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/generics/metadata/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/mapping/generic/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/mapping/implementation/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/overrides/dependency/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/overrides/field/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/overrides/parameter/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/overrides/property/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/resolution/resolution/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/resolution/type/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/composition/selection/constructor/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/extensions/activation/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/extensions/compilation/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/extensions/diagnostic/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/extensions/legacy/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/hierarchies/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/container/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/container_transient/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/external/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/hierarchical/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/resolve/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/singleton/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/thread/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/lifetime/transient/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/factory/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/instance/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/metadata/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/constructor/annotation/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/constructor/automatic/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/constructor/param_count/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/constructor/param_none/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/constructor/param_types/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/field/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/injection/default/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/injection/injected/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/injection/resolved/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/method/"},{"source_url":"/tutorials/toc.json","target_url":"/tutorials/registration/type/property/"}]} \ No newline at end of file diff --git a/_site/.manifest.json b/_site/.manifest.json deleted file mode 100644 index 8610865..0000000 --- a/_site/.manifest.json +++ /dev/null @@ -1 +0,0 @@ -{"default_version_info":{"name":"","version_folder":"","xref_map":"xrefmap.yml"},"files":[{"asset_id":"api/index","original":"api/index.md","source_relative_path":"api/index.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"api/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"api/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"api/toc.json","original":"api/toc.yml","source_relative_path":"api/toc.yml","original_type":"Toc","type":"Toc","output":{".mta.json":{"is_raw_page":false,"relative_path":"api/toc.mta.json"},".json":{"is_raw_page":false,"relative_path":"api/toc.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/application","original":"articles/application.md","source_relative_path":"articles/application.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/application/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/application/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/changelog","original":"articles/changelog.md","source_relative_path":"articles/changelog.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/changelog/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/changelog/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/design","original":"articles/design.md","source_relative_path":"articles/design.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/design/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/design/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/features","original":"articles/features.md","source_relative_path":"articles/features.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/features/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/features/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/history","original":"articles/history.md","source_relative_path":"articles/history.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/history/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/history/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/installation","original":"articles/installation.md","source_relative_path":"articles/installation.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/installation/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/installation/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/introduction","original":"articles/introduction.md","source_relative_path":"articles/introduction.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/introduction/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/introduction/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/quickstart","original":"articles/quickstart.md","source_relative_path":"articles/quickstart.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/quickstart/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"articles/quickstart/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"articles/toc.json","original":"articles/toc.yml","source_relative_path":"articles/toc.yml","original_type":"Toc","type":"Toc","output":{".mta.json":{"is_raw_page":false,"relative_path":"articles/toc.mta.json"},".json":{"is_raw_page":false,"relative_path":"articles/toc.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"images/favicon.png","original":"images/favicon.png","source_relative_path":"images/favicon.png","original_type":"Resource","type":"Resource","output":{"resource":{"is_raw_page":false,"relative_path":"images/favicon.png","link_to_path":"P:\\Unity Container\\Develop\\Documentation\\images\\favicon.png"}},"skip_normalization":false,"skip_schema_check":false},{"asset_id":"images/logo.svg","original":"images/logo.svg","source_relative_path":"images/logo.svg","original_type":"Resource","type":"Resource","output":{"resource":{"is_raw_page":false,"relative_path":"images/logo.svg","link_to_path":"P:\\Unity Container\\Develop\\Documentation\\images\\logo.svg"}},"skip_normalization":false,"skip_schema_check":false},{"asset_id":"images/resolver-override.png","original":"images/resolver-override.png","source_relative_path":"images/resolver-override.png","original_type":"Resource","type":"Resource","output":{"resource":{"is_raw_page":false,"relative_path":"images/resolver-override.png","link_to_path":"P:\\Unity Container\\Develop\\Documentation\\images\\resolver-override.png"}},"skip_normalization":false,"skip_schema_check":false},{"asset_id":"index","original":"index.md","source_relative_path":"index.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"readme","original":"README.md","source_relative_path":"README.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"readme/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"readme/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/constructor","original":"specs/constructor.md","source_relative_path":"specs/constructor.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/constructor/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/constructor/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/field","original":"specs/field.md","source_relative_path":"specs/field.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/field/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/field/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/hierarchy","original":"specs/hierarchy.md","source_relative_path":"specs/hierarchy.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/hierarchy/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/hierarchy/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/method","original":"specs/method.md","source_relative_path":"specs/method.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/method/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/method/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/property","original":"specs/property.md","source_relative_path":"specs/property.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/property/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/property/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/specification","original":"specs/specification.md","source_relative_path":"specs/specification.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/specification/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/specification/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/summary","original":"specs/summary.md","source_relative_path":"specs/summary.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/summary/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/summary/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/toc.json","original":"specs/toc.yml","source_relative_path":"specs/toc.yml","original_type":"Toc","type":"Toc","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/toc.mta.json"},".json":{"is_raw_page":false,"relative_path":"specs/toc.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"specs/workflow","original":"specs/workflow.md","source_relative_path":"specs/workflow.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"specs/workflow/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"specs/workflow/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"toc.json","original":"toc.yml","source_relative_path":"toc.yml","original_type":"Toc","type":"Toc","output":{".mta.json":{"is_raw_page":false,"relative_path":"toc.mta.json"},".json":{"is_raw_page":false,"relative_path":"toc.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/annotation/annotation","original":"tutorials/Annotation/annotation.md","source_relative_path":"tutorials/Annotation/annotation.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/annotation/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/annotation/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/annotation/constructor","original":"tutorials/Annotation/constructor.md","source_relative_path":"tutorials/Annotation/constructor.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/constructor/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/constructor/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/annotation/field","original":"tutorials/Annotation/field.md","source_relative_path":"tutorials/Annotation/field.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/field/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/field/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/annotation/method","original":"tutorials/Annotation/method.md","source_relative_path":"tutorials/Annotation/method.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/method/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/method/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/annotation/parameter","original":"tutorials/Annotation/parameter.md","source_relative_path":"tutorials/Annotation/parameter.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/parameter/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/parameter/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/annotation/property","original":"tutorials/Annotation/property.md","source_relative_path":"tutorials/Annotation/property.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/property/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/annotation/property/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/buildup/buildup","original":"tutorials/Composition/BuildUp/buildup.md","source_relative_path":"tutorials/Composition/BuildUp/buildup.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/buildup/buildup/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/buildup/buildup/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/collections","original":"tutorials/Composition/collections.md","source_relative_path":"tutorials/Composition/collections.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/collections/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/collections/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/composition","original":"tutorials/Composition/composition.md","source_relative_path":"tutorials/Composition/composition.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/composition/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/composition/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/generics/deferred","original":"tutorials/Composition/Generics/deferred.md","source_relative_path":"tutorials/Composition/Generics/deferred.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/deferred/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/deferred/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/generics/generics","original":"tutorials/Composition/Generics/generics.md","source_relative_path":"tutorials/Composition/Generics/generics.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/generics/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/generics/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/generics/lazy","original":"tutorials/Composition/Generics/lazy.md","source_relative_path":"tutorials/Composition/Generics/lazy.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/lazy/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/lazy/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/generics/metadata","original":"tutorials/Composition/Generics/metadata.md","source_relative_path":"tutorials/Composition/Generics/metadata.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/metadata/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/generics/metadata/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/mapping/generic","original":"tutorials/Composition/Mapping/generic.md","source_relative_path":"tutorials/Composition/Mapping/generic.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/mapping/generic/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/mapping/generic/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/mapping/implementation","original":"tutorials/Composition/Mapping/implementation.md","source_relative_path":"tutorials/Composition/Mapping/implementation.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/mapping/implementation/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/mapping/implementation/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/mapping/mapping","original":"tutorials/Composition/Mapping/mapping.md","source_relative_path":"tutorials/Composition/Mapping/mapping.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/mapping/mapping/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/mapping/mapping/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/overrides/dependency","original":"tutorials/Composition/Overrides/dependency.md","source_relative_path":"tutorials/Composition/Overrides/dependency.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/dependency/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/dependency/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/overrides/field","original":"tutorials/Composition/Overrides/field.md","source_relative_path":"tutorials/Composition/Overrides/field.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/field/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/field/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/overrides/override","original":"tutorials/Composition/Overrides/override.md","source_relative_path":"tutorials/Composition/Overrides/override.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/override/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/override/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/overrides/parameter","original":"tutorials/Composition/Overrides/parameter.md","source_relative_path":"tutorials/Composition/Overrides/parameter.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/parameter/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/parameter/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/overrides/property","original":"tutorials/Composition/Overrides/property.md","source_relative_path":"tutorials/Composition/Overrides/property.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/property/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/overrides/property/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/resolution/resolution","original":"tutorials/Composition/Resolution/resolution.md","source_relative_path":"tutorials/Composition/Resolution/resolution.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/resolution/resolution/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/resolution/resolution/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/resolution/type","original":"tutorials/Composition/Resolution/type.md","source_relative_path":"tutorials/Composition/Resolution/type.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/resolution/type/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/resolution/type/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/selection/constructor","original":"tutorials/Composition/Selection/constructor.md","source_relative_path":"tutorials/Composition/Selection/constructor.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/selection/constructor/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/selection/constructor/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/composition/selection/selection","original":"tutorials/Composition/Selection/selection.md","source_relative_path":"tutorials/Composition/Selection/selection.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/composition/selection/selection/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/composition/selection/selection/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/definitions","original":"tutorials/definitions.md","source_relative_path":"tutorials/definitions.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/definitions/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/definitions/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/extensions/activation","original":"tutorials/Extensions/activation.md","source_relative_path":"tutorials/Extensions/activation.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/activation/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/activation/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/extensions/compilation","original":"tutorials/Extensions/compilation.md","source_relative_path":"tutorials/Extensions/compilation.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/compilation/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/compilation/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/extensions/diagnostic","original":"tutorials/Extensions/diagnostic.md","source_relative_path":"tutorials/Extensions/diagnostic.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/diagnostic/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/diagnostic/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/extensions/extensions","original":"tutorials/Extensions/extensions.md","source_relative_path":"tutorials/Extensions/extensions.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/extensions/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/extensions/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/extensions/legacy","original":"tutorials/Extensions/legacy.md","source_relative_path":"tutorials/Extensions/legacy.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/legacy/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/extensions/legacy/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/hierarchies","original":"tutorials/hierarchies.md","source_relative_path":"tutorials/hierarchies.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/hierarchies/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/hierarchies/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/container_transient","original":"tutorials/lifetime/container_transient.md","source_relative_path":"tutorials/lifetime/container_transient.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/container_transient/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/container_transient/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/container","original":"tutorials/lifetime/container.md","source_relative_path":"tutorials/lifetime/container.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/container/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/container/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/disposal","original":"tutorials/lifetime/disposal.md","source_relative_path":"tutorials/lifetime/disposal.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/disposal/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/disposal/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/external","original":"tutorials/lifetime/external.md","source_relative_path":"tutorials/lifetime/external.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/external/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/external/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/hierarchical","original":"tutorials/lifetime/hierarchical.md","source_relative_path":"tutorials/lifetime/hierarchical.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/hierarchical/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/hierarchical/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/lifetime","original":"tutorials/lifetime/lifetime.md","source_relative_path":"tutorials/lifetime/lifetime.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/lifetime/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/lifetime/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/managers","original":"tutorials/lifetime/managers.md","source_relative_path":"tutorials/lifetime/managers.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/managers/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/managers/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/resolve","original":"tutorials/lifetime/resolve.md","source_relative_path":"tutorials/lifetime/resolve.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/resolve/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/resolve/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/singleton","original":"tutorials/lifetime/singleton.md","source_relative_path":"tutorials/lifetime/singleton.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/singleton/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/singleton/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/thread","original":"tutorials/lifetime/thread.md","source_relative_path":"tutorials/lifetime/thread.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/thread/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/thread/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/lifetime/transient","original":"tutorials/lifetime/transient.md","source_relative_path":"tutorials/lifetime/transient.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/transient/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/lifetime/transient/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/factory","original":"tutorials/registration/factory.md","source_relative_path":"tutorials/registration/factory.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/factory/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/factory/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/instance","original":"tutorials/registration/instance.md","source_relative_path":"tutorials/registration/instance.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/instance/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/instance/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/metadata","original":"tutorials/registration/metadata.md","source_relative_path":"tutorials/registration/metadata.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/metadata/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/metadata/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/registration","original":"tutorials/registration/registration.md","source_relative_path":"tutorials/registration/registration.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/registration/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/registration/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/constructor/annotation","original":"tutorials/registration/Type/Constructor/annotation.md","source_relative_path":"tutorials/registration/Type/Constructor/annotation.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/annotation/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/annotation/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/constructor/automatic","original":"tutorials/registration/Type/Constructor/automatic.md","source_relative_path":"tutorials/registration/Type/Constructor/automatic.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/automatic/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/automatic/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/constructor/constructor","original":"tutorials/registration/Type/Constructor/constructor.md","source_relative_path":"tutorials/registration/Type/Constructor/constructor.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/constructor/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/constructor/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/constructor/param_count","original":"tutorials/registration/Type/Constructor/param_count.md","source_relative_path":"tutorials/registration/Type/Constructor/param_count.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_count/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_count/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/constructor/param_none","original":"tutorials/registration/Type/Constructor/param_none.md","source_relative_path":"tutorials/registration/Type/Constructor/param_none.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_none/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_none/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/constructor/param_types","original":"tutorials/registration/Type/Constructor/param_types.md","source_relative_path":"tutorials/registration/Type/Constructor/param_types.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_types/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_types/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/constructor/param_values","original":"tutorials/registration/Type/Constructor/param_values.md","source_relative_path":"tutorials/registration/Type/Constructor/param_values.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_values/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/constructor/param_values/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/field","original":"tutorials/registration/Type/field.md","source_relative_path":"tutorials/registration/Type/field.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/field/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/field/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/injection/default","original":"tutorials/registration/Type/Injection/default.md","source_relative_path":"tutorials/registration/Type/Injection/default.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/default/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/default/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/injection/injected","original":"tutorials/registration/Type/Injection/injected.md","source_relative_path":"tutorials/registration/Type/Injection/injected.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/injected/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/injected/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/injection/injection","original":"tutorials/registration/Type/Injection/injection.md","source_relative_path":"tutorials/registration/Type/Injection/injection.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/injection/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/injection/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/injection/resolved","original":"tutorials/registration/Type/Injection/resolved.md","source_relative_path":"tutorials/registration/Type/Injection/resolved.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/resolved/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/injection/resolved/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/method","original":"tutorials/registration/Type/method.md","source_relative_path":"tutorials/registration/Type/method.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/method/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/method/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/parameter","original":"tutorials/registration/Type/parameter.md","source_relative_path":"tutorials/registration/Type/parameter.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/parameter/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/parameter/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/property","original":"tutorials/registration/Type/property.md","source_relative_path":"tutorials/registration/Type/property.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/property/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/property/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/registration/type/registration","original":"tutorials/registration/Type/registration.md","source_relative_path":"tutorials/registration/Type/registration.md","original_type":"Conceptual","type":"Content","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/registration/index.mta.json"},".raw.page.json":{"is_raw_page":false,"relative_path":"tutorials/registration/type/registration/index.raw.page.json"}},"skip_normalization":true,"skip_schema_check":true},{"asset_id":"tutorials/toc.json","original":"tutorials/toc.yml","source_relative_path":"tutorials/toc.yml","original_type":"Toc","type":"Toc","output":{".mta.json":{"is_raw_page":false,"relative_path":"tutorials/toc.mta.json"},".json":{"is_raw_page":false,"relative_path":"tutorials/toc.json"}},"skip_normalization":true,"skip_schema_check":true}],"is_already_processed":true,"source_base_path":".","version_info":{},"items_to_publish":[{"relative_path":"filemap.json","type":"filemap"}]} \ No newline at end of file diff --git a/_site/.publish.json b/_site/.publish.json deleted file mode 100644 index fae1486..0000000 --- a/_site/.publish.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"","product":"","base_path":"/","files":[{"url":"/images/favicon.png","path":"../images/favicon.png","source_path":"images/favicon.png","locale":"en-us"},{"url":"/images/logo.svg","path":"../images/logo.svg","source_path":"images/logo.svg","locale":"en-us"},{"url":"/images/resolver-override.png","path":"../images/resolver-override.png","source_path":"images/resolver-override.png","locale":"en-us"},{"url":"/api/","path":"api/index.html","source_path":"api/index.md","locale":"en-us","canonical_url":"https:///en-us/api/","conceptual":"\n

This documentation is generated by DocFX

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/api/index.md","depot_name":".","document_id":"b900a6ee-1d3b-cc19-ca58-f621b5ddfbff","document_version_independent_id":"62c4b9bf-c97a-4afb-633c-37a573696248","gitcommit":"https://github.com/unitycontainer/documentation/blob/fc9fe03376dd8ca08cf491c586c6f6e4e720545a/api/index.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/api/index.md","original_content_git_url_template":"{repo}/blob/{branch}/api/index.md","rawTitle":"

API Documentation Section

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"API Documentation Section","updated_at":"2017-11-26 02:59 AM","wordCount":6},{"url":"/api/toc.json","path":"api/toc.json","source_path":"api/toc.yml","locale":"en-us"},{"url":"/articles/application/","path":"articles/application/index.html","source_path":"articles/application.md","locale":"en-us","canonical_url":"https:///en-us/articles/application/","conceptual":"\n

Features such as inversion of control, dependency injection, interception, factory, and lifetime provide several major advantages when building applications that consist of many individual classes and components. Designing applications that conform to these patterns can provide numerous benefits:

\n
    \n
  • Decoupling service providers from service consumers
  • \n
  • Runtime as well as design time configuration of services and dependencies
  • \n
  • Ability to substitute one component for another.
  • \n
  • Centralization and abstraction of crosscutting concerns (logging, authentication, caching, and etc).
  • \n
  • Advanced lifetime management of components and services.
  • \n
  • Simplified testability for individual components and sections of the application.
  • \n
  • Simplified overall design, with faster and less error-prone development.
  • \n
  • Improved reusability of components within other applications.
  • \n
\n

Unity provides a comprehensive dependency injection and interception platform, and is easy to incorporate into your applications. However, it does change the way that you design these applications. The following sections of this topic describe areas where dependency injection is useful:

\n
    \n
  • Pluggable Architectures
  • \n
  • Managing Crosscutting Concerns
  • \n
  • Service and Component Location
  • \n
  • Policy Injection through Interception
  • \n
\n

Pluggable Architectures

\n

By designing applications to use a pluggable architecture, developers and users can add and modify the functionality of an application without changing the core code or processes. ASP.NET is an example of a pluggable architecture, where you can add and remove providers for features such as authentication, caching, and session management. Unity also facilitates a pluggable architecture that allows you to substitute the container for one of your own design and add extensions through the container extensions architecture.

\n

By using dependency injection mechanisms, such as Unity container, developers can map different components that implement a specific interface (such as a provider interface) or that inherit from a specific base class to the appropriate concrete implementations. Developers can then obtain a reference to the appropriate provider component at run time, without having to specify exactly which implementation of the component is required. The following sections of this topic, Managing Crosscutting Concerns and Service and Component Location, show how you can use dependency injection to create instances of a specific class based on a request for a more general class (such as an interface or base class definition).

\n

In addition, the providers may require instances of other components. For example, a caching provider may need to use the services of a cryptography component or service. When components require the services of other components, you can use dependency injection to automatically instantiate and inject instances of these components into a component, based on either configuration settings in the container or on code within the application.

\n

For more information about how you can use dependency injection in this way, see Using Injection Attributes.

\n

Managing Crosscutting Concerns

\n

The features and tasks implemented in applications are often referred to as concerns. The tasks specific to the application are core concerns. The tasks that are common across many parts of the application, and even across different applications, are crosscutting concerns. Most large applications require services such as logging, caching, validation, and authorization, and these are crosscutting concerns.

\n

The simplest way to centralize these features is to build separate components that implement each of the required features, and then use these components wherever the management of that concern is required—in one or more applications. By using dependency injection mechanisms, such as a Unity container, developers can register components that implement crosscutting concerns and then obtain a reference to the component at run time, without having to specify exactly which implementation of the component is required.

\n

For example, if you have a component named FileLogger that performs logging tasks, your application can instantiate this component using the new operator, as shown in the following code.

\n
FileLogger myLogger = new FileLogger();\n
\n

If you then want to change the application to use the new component, FastFileLogger, you must change the application code. However, if you have an interface ILogger that all implementations of the logging component uses, you might instead write the code like the following.

\n
ILogger myLogger = new FileLogger();\n
\n

However, this does not solve the problem because you still must find everywhere in the code where you used new() to create an instance of the specific class. Instead, you can use a dependency injection mechanism to map the ILogger interface to a specific concrete instance of the logging component, or even to multiple implementations, so that the application can specify which one it requires. The following code uses Unity to register a mapping for both a default type of logging component and a named type with the ILogger interface. Alternatively, you can specify these mappings using the Unity configuration file.

\n
// Create container and register types\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<ILogger, FileLogger>();       // default instance\nmyContainer.RegisterType<ILogger, FastFileLogger>("FastLogger");\n
\n

The application can then obtain a reference to the default logging component using the following code.

\n
ILogger myLogger = myContainer.Resolve<ILogger>();\n
\n

In addition, the application can use a variable (perhaps set in configuration or at run time) to specify a different implementation of the logging component interface as required, as shown in the following code.

\n
// Retrieve logger type name from configuration\nString loggerName = ConfigurationManager.AppSettings["LoggerName"].ToString();\nILogger myLogger = myContainer.Resolve<ILogger>(loggerName);\n
\n

For more information about registering types, type mappings, and resolving instances, see Resolving Objects.

\n

Service and Component Location

\n

Frequently, applications require the use of services or components that are specific to the application; examples are business logic components, data access components, interface components, and process controllers. In some cases, these services may be instance-based, so that each section of the application or each task requires a separate individual instance of the service. However, it is also common for services to be singleton-based, so that every user of the service references the same single instance of the service.

\n

A service location facility makes it easy for an application to obtain a reference to a service or component, without having to specify where to look for the specific service or whether it is a singleton-based or an instance-based service. By using dependency injection mechanisms, such as the Unity container, developers can register services in the appropriate way and then obtain a reference to the service at run time, without having to specify exactly which implementation of the service is required or what type of instance it actually is.

\n

For example, if you have a singleton service class named CustomerData that you interact with to read and update information for any customer, your application obtains a reference to this service usually by calling a static GetInstance method of the service (which ensures that it is a singleton and that only one instance can exist), as shown in the following code.

\n
CustomerData cData = CustomerData.GetInstance();\n
\n

Instead, you can use the Unity container to set the CustomerData class type with a specific lifetime that ensures it behaves as a singleton so that every request for the service returns the same instance, as shown in the following code. Alternatively, you could specify these mappings using the Unity configuration file.

\n
// Create container and register type as a singleton instance\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<CustomerData>(new ContainerControlledLifetimeManager());\n
\n

The application can then obtain a reference to the single instance of the CustomerData service using the following code. If the instance does not yet exist, the container creates it.

\n
CustomerData cData = myContainer.Resolve<CustomerData>();\n
\n

In addition, perhaps a new CustomerFile component you decide to use in your application inherits the same base class named CustomerAccessBase as the CustomerData service, but it is not a singleton—instead, it requires that your application instantiate an instance for each customer. In this case, you can specify mapping names when you register one component as a singleton type and one component as an instance type (with the default transient lifetime), and then use the same application code to retrieve the required instance.

\n

For example, the following code shows how you can register two named mappings for objects that inherit from the same base class, then—at run time—collect a string value from elsewhere in the application configuration that specifies which of the mappings to use. In this case, the value comes from the AppSettings section of the configuration file. If the value with the key CustomerService contains CustomerDataService, the code returns an instance of the CustomerData class. If it contains the value CustomerFileService, the code returns an instance of the CustomerFile class.

\n
IUnityContainer myContainer = new UnityContainer();\n// Register CustomerData type as a singleton instance\nmyContainer.RegisterType<CustomerAccessBase, CustomerData>("CustomerDataService", \n                        new ContainerControlledLifetimeManager());\n// Register CustomerFile type with the default transient lifetime\nmyContainer.RegisterType<CustomerAccessBase, CustomerFile>("CustomerFileService");\n...\nString serviceName = ConfigurationManager.AppSettings["CustomerService"].ToString();\nCustomerAccessBase cData \n  = (CustomerAccessBase)myContainer.Resolve<CustomerAccessBase>(serviceName);\n
\n

For more information about registering types, type mappings, and resolving instances, see Resolving Objects. For more information about using lifetime managers to control the creation, lifetime, and disposal of objects, see Understanding Lifetime Managers.

\n

Policy Injection through Interception

\n

Unity interception with its built-in policy injection module enables you to effectively capture calls to objects you resolve through the Unity DI container, and apply a policy that adds additional functionality to the target object. Typically, you will use this technique to change the behavior of existing objects, or to implement the management of crosscutting concerns through reusable handlers. You can specify how to match the target object using a wide range of matching rules, and construct a policy pipeline that contains one or more call handlers.

\n

Calls to the intercepted methods or properties of the target object then pass through the call handlers in the order you add them to the pipeline, and return through them in the reverse order. Your call handlers can access the values in the call, change these values, and control execution of the call. For example, the call handlers might authorize users, validate parameter values, cache the return value, and shortcut execution so that the target method does not actually execute where this is appropriate.

\n

You can configure Unity for policy injection by using a configuration file at design time, see Configuring Policy Injection Policies, or by using the API at run time, see Registering Policy Injection Components.

\n

The following example uses the Unity API to demonstrate how you can configure Unity to perform interception on a target object, using a policy that contains a logging handler and a validation handler. Notice that the logging handler is added first, so that it will log calls even if validation fails and the validation handler shortcuts the pipeline instead of calling the method of the target object. You can use the streamlined policy definition API provided by the Unity interception container extension to configure the container at run time or you can specify the same behavior at design time by using a configuration file. For an example using the API, see Registering Policy Injection Components. For a design time example, see Configuration Files for Interception.

\n
// Create a container and add the interception extension.\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.AddNewExtension<Interception>();\n\n// Configure the container with a policy named MyPolicy\n// that uses a TypeMatchingRule to match a custom class\n// and adds a logging handler and a validation handler\n// to the handler pipeline. You must specify at least one\n// matching rule or the policy will not be applied.\nmyContainer.Configure<Interception>()\n    .AddPolicy("MyPolicy")\n         .AddMatchingRule<TypeMatchingRule>(\n                  new InjectionConstructor("MyCustomType"))\n         .AddCallHandler(typeof(MyLoggingCallHandler))\n         .AddCallHandler(typeof(MyValidationCallHandler));\n\n// Configure the container to intercept calls to the\n// custom class using a TransparentProxyInterceptor.\nmyContainer.RegisterType<MyCustomType>("myType",\n    new Interceptor<TransparentProxyInterceptor>(),\n    new InterceptionBehavior<PolicyInjectionBehavior>());\n\n\n// Resolve the custom type through the container when\n// you are ready to use it. When you call a method or\n// set a property on it, the call will pass through\n// the logging handler and the validation handler.\nMyCustomType myNewInstance = myContainer.Resolve<MyCustomType>("myType");\n
\n

For more information about interception and policy injection, see Using Interception and Policy Injection.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/application.md","depot_name":".","document_id":"2f0a617d-9eaf-6117-88ac-584be21485aa","document_version_independent_id":"c37f1880-64cb-c594-2a5c-a9c15ec1b0e8","gitcommit":"https://github.com/unitycontainer/documentation/blob/a08c5cd38778dbc7606660e730b63c1a6800daf1/articles/application.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/application.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/application.md","rawTitle":"

Application Design Concepts with Unity

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Application Design Concepts with Unity","uid":"Article.Application.Design","updated_at":"2019-03-04 02:14 AM","wordCount":1920},{"url":"/articles/changelog/","path":"articles/changelog/index.html","source_path":"articles/changelog.md","locale":"en-us","canonical_url":"https:///en-us/articles/changelog/","conceptual":"\n

This document contains a list of breaking changes and noteworthy issues. At this time the list is not complete. If you discover an issue while upgrading that is not covered here please open an issue or, preferably, issue a pull request. You can clone the wiki to do that.

\n

Some breaking changes are currently documented in the issue tracker only. Again, please report any such findings by commenting on the issue.

\n

Upgrading to Unity 5.9.x

\n

Starting with version 5.9.0 Unity package will only contain Unity.Abstractions and Unity.Container packages.

\n

All other packages will be available as individual NuGet packages

\n

Breaking change

\n

Some extension methods have been moved out of the Unity nuget package and have been moved into their own individual packages.

\n

For example, the following code will no longer work

\n
Container = new UnityContainer();\nContainer.LoadConfiguration();\n
\n

You will receive an error that the namespace Microsoft.Practices.Unity.Configuration no longer exists in your using statements.

\n

The Fix

\n

To fix this and similar problems, add the required nuget packages separately.

\n

For the example above, add nuget package Unity.Configuration

\n

This wiki created with help from quintonn

\n

Upgrading to Unity 5.8.x

\n

Unity 5.8.0 adds support for nesting generic types when resolving collections (arrays and enumerables).

\n

Problem

\n

Unity has build in support for IEnumerable<>, Array ( type[] ), Func<>, and Lazy<>. Theoretically it should be able to recognize these types and properly resolve them individually and in combination. Unfortunately it did not do so. For example if you registered several interfaces like this:

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n
\n

resolving enumerable in combination with generic will resolve incorrectly:

\n
Resolve<Lazy<IEnumenrable<type>>>  - resolve correctly\nResolve<IEnumenrable<Lazy<type>>>  - resolve empty\n
\n

The Fix

\n

Release v5.8.0 fixes resolution of collections of generic and array types and Lazy collections of items. This will now work fine:

\n
Resolve<Lazy<IEnumenrable<type>>>\nResolve<IEnumenrable<Lazy<type>>>\n\nResolve<Lazy<type[]>>\nResolve<Lazy<type>[]>\n\nResolve<IEnumerable<Lazy<Func<IService>>>>()\nResolve<IEnumerable<Func<Lazy<IService>>>>()\n\nResolve<Lazy<Func<IService>>[]>()\nResolve<Func<Lazy<IService>>[]>()\n
\n

The logic behind resolving collections is to find type to enumerate and get all registrations for it no matter how deep in generics tree. Enumerated type could be:

\n
    \n
  • Non generic (Constructed Generic) type
  • \n
  • Explicitly registered type
  • \n
\n

So, in this example

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n\nResolve<IEnumerable<Func<Lazy<IService>>>>();\n
\n

Unity will recognize IService as registered type and enumerate four instances of Func<Lazy<IService>>.

\n

But if you look at this example:

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n\nRegisterType(typeof(IFoo<>), typeof(Foo<>));  <-- note this registraton\n\nResolve<IEnumerable<IFoo<IService>>>();\n
\n

Returned result is different! Adding registration for IFoo changes enumerable type to IFoo. This resolution will only return one item.

\n

Breaking change

\n

Sometimes you do want Unity to ignore a generic when it resolves collections similar to how it deals with Lazy and Func. Suppose in example above you want Unity to resolve all four of IService instances wrapped in IFoo.\nTo do so you would have to make IFoo<> a Built-In type of the container.

\n

It could be simply done by creating either IBuildPlanCreatorPolicy or IBuildPlanPolicy factories.\nThere are just a few steps you need to follow:

\n\n

For examples of how it should be done please follow this link.

\n

Upgrading to Unity 5.2.1

\n

This release fundamentally changes how types are registered with Unity. The rationale behind this change is this issue.

\n

The problem

\n

To explain the problem please look at this example. Prior to this release registering singleton ILogger service like this:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager(), new InjectionConstructor());\n
\n

would create two registrations:

\n
    \n
  1. A mapping between ILogger to MockLogger
  2. \n
  3. A singleton registration for MockLogger with default constructor.
  4. \n
\n

Calling container.Resolve<ILogger>() resolves singleton instance of MockLogger as expected, and resolving type MockLogger container.Resolve<MockLogger>() would resolve the same instance of MockLogger. Both ContainerControlledLifetimeManager and InjectionConstructor would be associated with MockLogger registration.

\n

Suppose you want to resolve a new MockLogger whenever it is resolved directly like this container.Resolve<MockLogger>(). To do so you would create another registration just for the MockLogger:

\n
container.RegisterType<MockLogger>(new TransientLifetimeManager());\n
\n

So, now when you call container.Resolve<MockLogger>() it resolves new instance of the MockLogger class and uses constructor with longest list of parameters. All is well and as expected. But now if you try to resolve container.Resolve<ILogger>() it is no longer returns singleton instance of the MockLogger. Now it also returns new MockLogger created with constructor with longest list of parameters.\nThe subsequent registration overwritten all information associated with ILogger.

\n

The solution

\n

Release 5.2.1 fixes this behavior. Now all information passed to Unity during registration is stored with FromType instead of ToType. So registering type like this:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager(), new InjectionConstructor());\n
\n

creates just one registration ILogger and associates LifetimeManager and all provided InjectionMemebers with it. At this point MockLogger is still unregistered.

\n

So, think about it as a RegisteredType and MappedTo type. If you look at initial example:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager());\n
\n

ILogger - is a registered type and ContainerControlledLifetimeManager is associated with this type, as well as any InjectionMembers you provide during registration.

\n

Breaking changes

\n

This release breaks a lot of registrations. Anything relaying on TypeTo being registered in mappings will fail. For example:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager());\n\nAssert.AreSame( container.Resolve<ILogger>(), container.Resolve<MockLogger>()) <-- Will fail now\n
\n

This could be easily fixed by slightly modifying how types are registered. If you want TypeTo to be available independently you could register it like this:

\n
container.RegisterType<MockLogger>(new ContainerControlledLifetimeManager());\ncontainer.RegisterType<ILogger, MockLogger>();\n\nAssert.AreSame( container.Resolve<ILogger>(), container.Resolve<MockLogger>()) <-- Passes\n
\n

This applies to anything you registering with the type: factories, injection members, interceptors, etc.

\n

Fixing

\n

With some creative searching and sorting these breaking registrations could be identified statically, without running the code. The key is to look for registrations with same TypeTo type. If you see multiple registrations registering same type as implementation type and at least one of them has non transient lifetime it is a good indicator that it might fail after update:

\n
container.RegisterType<ILogger, Logger>(new ContainerControlledLifetimeManager());\n...\ncontainer.RegisterType<IOtherLogger, Logger>();\n
\n

To fix just add individual registration for implementation type with proper lifetime manager like so:

\n
container.RegisterType<Logger>(new ContainerControlledLifetimeManager());\n...\ncontainer.RegisterType<ILogger, Logger>();\n...\ncontainer.RegisterType<IOtherLogger, Logger>();\n
\n

Make sure it is registered before other mappings.

\n

Upgrading to Unity.Abstractions 4.1.4

\n

Lifetime managers now support the value null. GetValue must return LifetimeManager.NoValue to indicate that no value has been set. You must upgrade custom lifetime managers to not return null inappropriately. Mainly the GetValue method must be adjusted. The built-in lifetime managers have been upgraded. If you do not use custom lifetime managers you should not see any changes in behavior. (https://github.com/unitycontainer/abstractions/issues/102)

\n

Design time validation for LifetimeManager was added. The marker interfaces ITypeLifetimeManager, IInstanceLifetimeManager and IFactoryLifetimeManager have been introduced. Various other parts of the framework now refer to these types instead of LifetimeManager. The marker interfaces are empty and LifetimeManager does not inherit from any of them. This can lead to compiler errors. In general these errors can be fixed through changing the type of variables or through casting. (https://github.com/unitycontainer/abstractions/issues/90)

\n

Upgrading to Unity.Abstractions 4.0.0.350

\n

The namespace Unity.Attributes was removed. These types are now in namespace Unity. One common type that is affected is DependencyAttribute. Suggested way to upgrade: Mass delete the old namespace reference using the Regex using Unity.Attributes;\\r\\n in Visual Studio. Then, use Resharper to fix missing imports in the entire solution in one action.

\n

Upgrading to Unity.Abstractions 4.0.0.0

\n

A few breaking changes have been made. For more information see https://github.com/unitycontainer/abstractions/issues/97.

\n

Problem

\n

Build error The type or namespace name 'IBuilderContext' could not be found.

\n

Solution

\n

IBuilderContext has been replaced with: Unity.Builder.BuilderContext

\n

Problem

\n

Build Error `'IBuildPlanCreatorPolicy' is obsolete: 'This interface has been replaced with Unity.Policy.ResolveDelegateFactory delegate'``

\n

Solution

\n

See this example or this example or this example

\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PreBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PreBuildUp method to: public override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PostBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PostBuildUp method to:\npublic override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

Build Error in Builder Strategy derived class:\n'BuilderContext' does not contain a definition for 'AddResolverOverrides' and no accessible extension method 'AddResolverOverrides' accepting a first argument of type 'BuilderContext' could be found

\n

Solution

\n

The behaviour can be mimicked by something like:

\n
        public static void AddResolverOverrides(ref BuilderContext ctx, ResolverOverride theOverride)\n        {\n            var newOverrides = ctx.Overrides;\n            newOverrides = newOverrides == null \n                ? new ResolverOverride[]{theOverride} \n                : newOverrides.Concat(new[] {theOverride}).ToArray();\n\n            ctx.Overrides = newOverrides;\n        }\n
\n

Problem

\n

'BuilderContext' does not contain a definition for 'ParentContext' and no accessible extension method 'ParentContext' accepting a first argument of type 'BuilderContext' could be found

\n

I used the ParentContext of IBuilderContext to determine if anything in the build hierarchy was of a certain type. More specifically I was checking to see if a specific decorator class was being applied as part of the build.

\n

Solution

\n

There is an IntPtr Parent property on the BuilderContext struct. Can this be used to find the parent context?

\n

Problem

\n

There is a build warning:\n'InjectionFactory' is obsolete: 'InjectionFactory has been deprecated and will be removed in next release. Please use IUnityContainer.RegisterFactory(...) method instead.'

\n

Solution

\n

The InjectionFactory class has been deprecated. Injection factories are now registered directly with the container.\nFor example:

\n

Old code:\nContainer.RegisterType<IEncryptionProvider>(new ContainerControlledLifetimeManager(), new InjectionFactory(c => MakeEncryptionProvider(c)));

\n

New code:\nContainer.RegisterFactory<IEncryptionProvider>(c => MakeEncryptionProvider(c), new ContainerControlledLifetimeManager());

\n

Be Aware

\n

The public key token of the assembly has changed, so you may need to remove redundant assembly bindings from config files.

\n

For example:\nThis binding will now be ineffective, and can be removed:

\n
      <dependentAssembly>\n        <assemblyIdentity name="Unity.Abstractions" publicKeyToken="6d32ff45e0ccc69f" culture="neutral" />\n        <bindingRedirect oldVersion="0.0.0.0-3.3.0.0" newVersion="3.3.0.0" />\n      </dependentAssembly>\n
\n

Note:

\n
    \n
  • The old public key token value is 6d32ff45e0ccc69f
  • \n
  • The new public key token is 489b6accfaf20ef0
  • \n
\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PostBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PostBuildUp method to: public override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

I'm using this code to register my interfaces:

\n
Containter.RegisterType<ICustomerRepository, CustomerRepository>(new ContainerControlledLifetimeManager(), InjectionConstructor);\n
\n

But after the upgrade im getting the following error when resolving:

\n
Exception thrown: 'System.InvalidCastException' in Unity.Abstractions.dll\nUnable to cast object of type\n
\n

Solution

\n

Ok I managed to find out what I was doing wrong.\nI was reusing the same 'InjectionConstructor' for all my registrations.\nAfter replacing them with a new instance for each my problem went away.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/changelog.md","depot_name":".","document_id":"6a34c583-fac2-de3b-02e6-295347f24cec","document_version_independent_id":"f49a2693-93c2-cc77-ff66-251ae7c171be","gitcommit":"https://github.com/unitycontainer/documentation/blob/3838863b96854037a5cc56e5c9a81bf7bcdc15c5/articles/changelog.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/changelog.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/changelog.md","rawTitle":"

Upgrading Unity Container (Changelog)

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Upgrading Unity Container (Changelog)","uid":"Article.Change.Log","updated_at":"2019-04-24 10:53 PM","wordCount":1670},{"url":"/articles/design/","path":"articles/design/index.html","source_path":"articles/design.md","locale":"en-us","canonical_url":"https:///en-us/articles/design/","conceptual":"\n

Unity was designed to achieve the following goals:

\n
    \n
  • Promote the principles of modular design through aggressive decoupling.
  • \n
  • Maximize testability when designing applications.
  • \n
  • Provide a fast and lightweight dependency injection platform for creating new as well as managing existing objects.
  • \n
  • Expose a compact and intuitive API for developers to work with.
  • \n
  • Support a wide range of languages, and platforms.
  • \n
  • Allow attribute-driven injection for constructors, properties, fields, and methods.
  • \n
  • Provide extensibility through container extensions.
  • \n
  • Provide stability required in enterprise-level line of business (LOB) applications.
  • \n
\n

To allow maximum flexibility Unity container split into core and extension packages. Core packages implement basic IoC/DI functionality and extensions provide specific behavior such as configuration, decoration, and etc.

\n

Unity Core

\n

Unity core consists of two assemblies:

\n
    \n
  • Unity.Abstractions
  • \n
  • Unity.Container
  • \n
\n

Unity.Abstractions assembly contains all public declarations required to use the container in applications and relatively unchanged from version to version. It defines IUnityContainer interface as well as types and interfaces used to register, configure and resolve types and instances.

\n

Unity.Container assembly implements the IoC engine and exposes public members required to extend the container.

\n

Core Packages

\n

For legacy support and general convenience core library is distributed in two different forms:

\n\n

Composite package Unity

\n

This is a convenience package containing both Unity.Abstractions as well as Unity.Container assemblies. This package is distributed to support legacy applications.

\n

Independent Packages Unity.Abstractions and Unity.Container

\n

To allow easier path to upgrade and maximum decoupling between declarative part and implementation, Unity split into two assemblies: Unity.Abstractions and Unity.Container

\n

When used in libraries it allows linking to Unity.Abstractions and referencing Unity.Container only in bootstrapping project.

\n

Unity Extensions

\n

Unity project implements and distributes several extensions such as Unity.Configuration, Unity.Interception, and etc.

\n

More Information

\n

For more information about using packages inside applications see Application Design concepts with Unity.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/design.md","depot_name":".","document_id":"b362c72d-351a-f2e3-9457-72d6818c97c0","document_version_independent_id":"50caf97e-a047-7f49-3a23-3b57ba420d7b","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a49e6e6bf793ca22cb92d5313c37eea597c589a/articles/design.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/design.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/design.md","rawTitle":"

Design of Unity

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Design of Unity","uid":"Article.Unity.Design","updated_at":"2019-11-25 08:32 PM","wordCount":301},{"url":"/articles/features/","path":"articles/features/index.html","source_path":"articles/features.md","locale":"en-us","canonical_url":"https:///en-us/articles/features/","conceptual":"\n

General Features

\n
    \n
  • No registration required for simple POCO types
  • \n
  • Registration/updates at any time (no builder required)
  • \n
  • Support registration metadata
  • \n
  • Support generic types
  • \n
  • Register existing objects
  • \n
  • Custom Type factories
  • \n
  • Register Type
  • \n
  • List all registrations
  • \n
  • Check existing registrations
  • \n
\n

Setup

\n
    \n
  • Registration\n
      \n
    • Type mappings\n
        \n
      • Register as a Type
      • \n
      • Support Type polymorphism
      • \n
      • Register as an implemented interface
      • \n
      • Multiple interfaces of the same Type
      • \n
      \n
    • \n
    • Register Type\n
        \n
      • Constructor selection\n
          \n
        • Constructor marked by attribute
        • \n
        • 'Smart' constructor selection\n
            \n
          • Longest constructor Unity can satisfy with parameters (dynamic)
          • \n
          • Legacy longest constructor (Extension)
          • \n
          \n
        • \n
        • Specific constructor (Injection Member)\n
            \n
          • By types of parameters
          • \n
          • By injected members
          • \n
          • By provided values
          • \n
          \n
        • \n
        \n
      • \n
      • Initializing Properties\n
          \n
        • Marked with attribute
        • \n
        • Injected during registration (Injection Member)
        • \n
        \n
      • \n
      • Initializing Fields\n
          \n
        • Marked with attribute
        • \n
        • Injected during registration (Injection Member)
        • \n
        \n
      • \n
      • Calling Methods on the object\n
          \n
        • Marked with attribute
        • \n
        • Injected during registration (Injection Member)\n
            \n
          • By types of parameters
          • \n
          • By injected members
          • \n
          • By provided values
          • \n
          \n
        • \n
        \n
      • \n
      \n
    • \n
    \n
  • \n
  • Registrations Collection\n
      \n
    • List registrations of the container
    • \n
    • Support registration hierarchies
    • \n
    \n
  • \n
  • Check if Type is registered\n
      \n
    • Fast and efficient algorithm
    • \n
    \n
  • \n
\n

Execution

\n

Initialization of existing objects (BuildUp)

\n
    \n
  • Perform initialization on already created objects
  • \n
  • Follow the same pattern as create (Resolve) object
  • \n
  • Compatible with Activator and Compiled pipelines
  • \n
  • Initialize Properties and Fields
  • \n
  • Call Methods and inject parameters
  • \n
\n

Create Instances (Resolve)

\n
    \n
  • Inject constructor with parameters
  • \n
  • Initialize Properties and Fields
  • \n
  • Call Methods and injects parameters
  • \n
  • Support Activator pipelines
  • \n
  • Create optimized (compiled) pipelines
  • \n
  • Seamlessly resolve registered instances or creates new objects
  • \n
  • Built-in support for deferred resolution\n
      \n
    • Func<T>
    • \n
    • Lazy<T>
    • \n
    \n
  • \n
  • Built-in support for collections\n
      \n
    • T[]
    • \n
    • IEnumerable<T>
    • \n
    \n
  • \n
  • Automatic concrete types resolution
  • \n
  • Dependency injection\n
      \n
    • Required
    • \n
    • Optional
    • \n
    • Supports Default parameters
    • \n
    • Injects with resolved parameters
    • \n
    • Injects with registered values
    • \n
    • Supports parameter overrides
    • \n
    \n
  • \n
  • Open-generic types\n
      \n
    • constraints
    • \n
    • variance
    • \n
    • nested
    • \n
    • recurring generic definitions
    • \n
    \n
  • \n
\n

Manages lifetime of objects

\n
    \n
  • Transient
  • \n
  • Singleton
  • \n
  • Per Container
  • \n
  • Per Container Transient
  • \n
  • Hierarchical
  • \n
  • External
  • \n
  • Per Thread
  • \n
  • Per Resolve
  • \n
  • Other (Extension)
  • \n
\n

Create child (Scoped) containers

\n
    \n
  • Create disposable child containers (scopes)
  • \n
\n

Extensibility

\n

Diagnostic

\n
    \n
  • Registration
  • \n
  • Injection Attribute
  • \n
  • Stack Overflow
  • \n
  • Cyclic reference
  • \n
\n

Legacy

\n
    \n
  • Legacy constructor selection
  • \n
\n

Functionality

\n
    \n
  • Configuration
  • \n
  • Interception
  • \n
  • Logging
  • \n
  • Web
  • \n
  • Etc.
  • \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/features.md","depot_name":".","document_id":"7e5161f5-b147-7283-ad4e-24b92f86aa94","document_version_independent_id":"d27ff859-57d2-8956-ce66-c2138968998c","gitcommit":"https://github.com/unitycontainer/documentation/blob/df7803bd64e560cd90a37d21d4db0bd5c1cdc503/articles/features.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/features.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/features.md","rawTitle":"

Features

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Features","uid":"Article.Unity.Features","updated_at":"2019-03-22 10:10 PM","wordCount":313},{"url":"/articles/history/","path":"articles/history/index.html","source_path":"articles/history.md","locale":"en-us","canonical_url":"https:///en-us/articles/history/","conceptual":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
YearReleaseAuthors and Contributors
October 2017Unity 5GitHub Community Site
October 2015Unity 4GitHub Community Site
April 2014Unity 3.5CodePlex Community Site
April 2013Unity 3CodePlex Community Site
Aug 2012Unity 2.1CodePlex Community Site
April 2010Unity 2.0Grigori Melnik, Bob Brumfield, Chris Tavares, Fernando Simonazzi, Nicolas Botto, Olaf Conijn, Carlos Farre, Masashi Narumoto, Rohit Sharma, Lavanya Selvaraj, Magdelene Sona, Mani Krishnaswami, Meenakshi Krishnamoorthi, Santhosh Panneerselvam, Ravindra Varman, Erik Renaud, François Tanguay, Rick Carr, Alex Homer, Dennis DeWitt, RoAnn Corbisier, Steve Elston, Nancy Michel, Patrick Lanfear, Tom Draper, Richard Burte, Jennifer Burch, Tracy Emory
October 2008Unity Application Block 1.2Grigori Melnik, Chris Tavares, Fernando Simonazzi, Vijaya Janakiraman, Carlos Farre, Dennis DeWitt, Alex Homer, Nelly Delgado, RoAnn Corbisier, Tina Burden McGrayne, Richard Burte
May 2008Unity Application Block 1.1Grigori Melnik, Scott Densmore, William Loeffler, Chris Tavares, Fernando Simonazzi, Nicolas Botto, Hanz Zhang, Carlos Farre, Naveen Guda, Pooja Parate, Pravin Pawar, Ronita Acharya, Sai Pasumarthi, Venkata Appaji Sirangi, Vijaya Janakiraman, Alex Homer, Nelly Delgado, RoAnn Corbisier, Tina Burden McGrayne
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/history.md","depot_name":".","document_id":"a4e26158-c7cf-11a1-7e12-8fa419b1f274","document_version_independent_id":"3efb1167-e235-dd99-e5dd-5db9dde70f26","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/articles/history.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/history.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/history.md","rawTitle":"

The Unity Container History

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"The Unity Container History","uid":"Article.Unity.History","updated_at":"2019-03-16 08:42 PM","wordCount":175},{"url":"/articles/installation/","path":"articles/installation/index.html","source_path":"articles/installation.md","locale":"en-us","canonical_url":"https:///en-us/articles/installation/","conceptual":"\n

Unity is designed to support a range of common scenarios for resolving instances of objects that, themselves, depend on other objects or services. However, you must first prepare your application to use Unity. The following procedure describes how to include the necessary assemblies and elements in your code.

\n

To prepare your application

\n

Before you can add Unity to your solution you need to decide if you want to reference packages individually (Abstractions, Container) or use composite Unity package.

\n

Referencing composite package

\n

Referencing single Unity package is more appropriate in case of small(ish) project, when everything is contained within one solution. Upgrading such solution is trivial with the help of NuGet Manager.

\n

Referencing individual packages

\n

Main benefit of referencing Abstractions and Container packages individually is when it is used in large project spanning multiple solutions, modules, and project files.

\n

Normally modular systems have one main application/module with boot-loader responsible for initializing environment, and number of modules loaded by it (Prism library for example). This boot loader is required to reference both Abstractions and Container packages.

\n

In such systems modules are created and distributed by various teams and departments and synchronization between these might be a challenge. This is where Unity comes in.\nAs stated elsewhere on this site Unity.Abstractions contains all declarations required by Unity to operate. Because of that modules could only reference one assembly: Unity.Abstractions

\n

This separation allows updates of patched container's engine without recompiling all the modules used in the system. Given that specifications change very infrequently and Unity.Abstractions package stays the same most of the time it provides big benefit in terms of saved development/testing time and money.

\n

Adding Unity to project

\n

Unity container is distributed via NuGet and could be added to a project with the help of NuGet manager or by executing command:

\n
Install-Package Unity\n\nor\n\nInstall-Package Unity.Abstractions\nInstall-Package Unity.Container\n
\n

If you wish to use Floating Version references it is recommended to lock in the minor and major versions and only allow patch version to slide:

\n
<PackageReference Include="Unity.Container" Version="5.9.*" />\n
\n

doing so will guarantee that no breaking change caught you of guard.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/installation.md","depot_name":".","document_id":"f2c12317-d328-78fd-cc78-8bf80690406d","document_version_independent_id":"623501b4-0f80-ff38-3a41-051d28f127a9","gitcommit":"https://github.com/unitycontainer/documentation/blob/a08c5cd38778dbc7606660e730b63c1a6800daf1/articles/installation.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/installation.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/installation.md","rawTitle":"

Adding Unity to Your Application

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Adding Unity to Your Application","uid":"Article.Unity.Install","updated_at":"2019-03-04 02:14 AM","wordCount":347},{"url":"/articles/introduction/","path":"articles/introduction/index.html","source_path":"articles/introduction.md","locale":"en-us","canonical_url":"https:///en-us/articles/introduction/","conceptual":"\n

Overview

\n

Unity Container is a full featured, general-purpose IoC container for use in any type of .NET application. It is Open Source and released under Apache 2.0 license.

\n

Unity is extensible. Anyone can write an extensions that changes the behavior of the container, or adds new capabilities. For example, the interception feature provided by Unity, which you can use to add policies to objects, is implemented as a container extension.

\n

What Does Unity Do

\n

Apart from decoupling types, components, services, and separating concerns, Unity crates and manages objects. Think of it as operator new ... on steroids.

\n\n

The Types of Objects Unity Can Create

\n

You can use the Unity container to generate instances of any object that has a public constructor (in other words, objects that you can create using the new operator). During object instantiation Unity can:

\n
    \n
  • Select appropriate constructor
  • \n
  • Inject constructor with parameters
  • \n
  • Inject public properties with values
  • \n
  • Inject public fields with values
  • \n
  • Call any public method on the created object
  • \n
\n

Registering Types and Object Instances

\n

Unity can resolve any concrete, constructable reference type without registration. For example calling container.Resolve<object>() will produce an instance immediately.

\n

Registrations allow mapping between service types and implementation types. Create a blueprint of how instances instantiated, initialized, and managed. For generic types it creates internal mini factories that used to generate concrete types. Unity supports three ways of registering types:

\n

Instance registration

\n

Unity exposes a method named RegisterInstance that you can use to register existing instances with the container. The instance could be registered as concrete type, a type of the instance you would get by calling instance.GetType(), or it could be registered as any of the interfaces the instance implements. Lifetime of registered instance could be either controlled by container it is registered with or externally, in which case Unity just keeps weak reference to the object.

\n

Factory registration

\n

Method RegisterFactory provides a way to register a factory delegate Unity would call when required to provide the type.

\n

Type registration

\n

RegisterType is a method where you can instruct Unity how to create and initialize objects from scratch. You can specify:

\n
    \n
  • Constructor to call
  • \n
  • Parameters to pass to the constructor or how to resolve them
  • \n
  • Properties to initialize and how to do it
  • \n
  • Fields to inject and with what
  • \n
  • Methods to call on the created object and parameters to pass to these methods
  • \n
  • Specify how lifetime should be managed
  • \n
\n

Managing the Lifetime of Objects

\n

Unity allows you to choose the lifetime of the objects it creates. By default, Unity creates a new instance of a type each time you resolve that type. However, you can use different lifetime managers to specify a required lifetime for resolved instances. For example, you can specify that Unity should maintain only a single instance (a singleton). It will create a new instance only if there is no existing instance. If there is an existing instance, it will return a reference to this instead. There are also other lifetime managers you can use.

\n

Specifying Values for Injection

\n

Unity allows configurations where dependencies are resolved from the container. But it also provides an easy way to configure injection of values at registration. In other words you could provide values for dependencies to be registered and used during subsequent resolutions.

\n

Unity also allows overriding of any dependency values during resolution. It could override any configured or resolved value during resolution of the type.

\n

Populating collections

\n

Unity has built-in support for resolving arrays and enumerations of types. For example it would recognize following types as collections and resolve them using proper algorithm:

\n
    \n
  • Resolve<T[]>()
  • \n
  • Resolve<IEnumerable<T>>()
  • \n
  • Resolve<List<T>>()
  • \n
\n

Support for deferred resolution

\n

Unity container implements strategies to allow deferred resolution of types. It has two types of deferred resolvers:

\n
    \n
  • Func<T> - Creates factory method which instantiates type T on demand.
  • \n
  • Lazy<T> - Creates Lazy<T> object and passes it to created type.
  • \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/introduction.md","depot_name":".","document_id":"edb43f99-5118-5174-37b2-f733fa1abf87","document_version_independent_id":"e3b1d344-8371-7dbc-ed8d-707d380a75d4","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a49e6e6bf793ca22cb92d5313c37eea597c589a/articles/introduction.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/introduction.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/introduction.md","rawTitle":"

Unity Container Introduction

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Container Introduction","uid":"Article.Unity.Introduction","updated_at":"2019-11-25 08:32 PM","wordCount":664},{"url":"/articles/quickstart/","path":"articles/quickstart/index.html","source_path":"articles/quickstart.md","locale":"en-us","canonical_url":"https:///en-us/articles/quickstart/","conceptual":"\n

This topic describes how to develop applications using Unity, and how to create and build instances of objects. It assumes that you familiar with dependency injection and separation of concerns concepts.

\n

The Container

\n

Unity exposes very compact API to operate the container. The most operations related to registration, resolution, and lifetime management is exposed through one interface - IUnityContainer.

\n

To start using Unity you need to create an instance of the container and get reference to IUnityContainer interface:

\n
IUnityContainer container = new UnityContainer();\n
\n

Creating instances

\n

Once container is created you could start using it immediately:

\n
IUnityContainer container = new UnityContainer();\nvar value = container.Resolve<object>();\n\n// Calling Resolve<object>() is the same as \nvalue = new object(); \n
\n

It will create any type with accessible constructor. Consider following example:

\n
// Simple class Foo\npublic class Foo\n{\n    public Foo() { }\n\n    public Foo(object obj) { }\n\n    public Foo(string id, object obj) { }\n}\n\n// Create container\nIUnityContainer container = new UnityContainer();\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(object obj)'\n
\n

Foo is a simple class with three public constructors. When Resolve<Foo>() is called, Unity will evaluate available constructors and select one with longest list of parameters it can satisfy with dependencies. It will create all required dependencies and pass them to selected constructor during initialization.

\n

In this particular case Unity will select second constructor with parameter obj of type Object. Although constructor Foo(string id, object obj) is longer, it has parameter of type String which is a primitive type. Unity can not create primitive types by itself. If you want to make these available for dependency injection you would need to register them with the container. For Unity to select third constructor Foo(string id, object obj) you need to register string instance with container:

\n
// Register string instance\ncontainer.RegisterInstance("xyz");\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(string id, object obj)'\n
\n

For more information on how Unity selects members see Member Selection

\n

Type Mapping

\n

In service oriented architecture contracts are represented by interfaces and components implement these contracts to provide services. Consider these types:

\n
// Public service contract\npublic interface IService \n{\n    // Service API\n}\n\n\n// Component implementing the contract\npublic class Component : IService\n{\n    // Some logic here\n}\n\n\n// Service consumer\npublic class Foo\n{\n    public Foo(IService service)\n    {\n        // Some logic here\n    }\n}\n
\n

In this example we have IService interface defining an API and class Component implementing that API. Type Foo is a consumer of the service and should be injected by container with an instance of the service during initialization.

\n

If you just call container.Resolve<IService>() it will throw an exception complaining that it can not create an interface of type IService. You need to register a Type Mapping to instructs Unity how to create service of type IService:

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>();\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(IService service)'\n
\n

During the resolution, when Unity will try to satisfy dependencies, it will look for a registration for each dependency and will find this mapping. It will create Component and passes it to constructor of Foo as IService.

\n

For more information see Type Mapping

\n

Lifetime

\n

By default Unity creates a new instance every time type is requested. Instances it created are not tracked or managed by the container.

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>();\n\n// Resolve IService\nvar value1 = container.Resolve<IService>();\nvar value2 = container.Resolve<IService>();\n\n// value1 and value2 are not the same\n
\n

To enable lifetime management, type needs to be registered with one of the compatible lifetime managers. Depending on registration type Unity provides three helpers:

\n\n

For example, to make IService a singleton for the entire application and create it only once you would register it like this:

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>(TypeLifetime.Singleton);\n\n// Resolve IService\nvar value1 = container.Resolve<IService>();\nvar value2 = container.Resolve<IService>();\n\n// value1 and value2 are the same instance of Component\n
\n

For more information see Lifetime Management

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/quickstart.md","depot_name":".","document_id":"1eb2a883-aa19-c5b5-593b-d6b67c1546f6","document_version_independent_id":"3c85a775-179c-fd58-72d6-437a7041a3f0","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/articles/quickstart.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/quickstart.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/quickstart.md","rawTitle":"

Using Unity in Applications

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Using Unity in Applications","uid":"Article.Unity.Using","updated_at":"2019-04-30 01:18 AM","wordCount":674},{"url":"/articles/toc.json","path":"articles/toc.json","source_path":"articles/toc.yml","locale":"en-us"},{"url":"/","path":"index.html","source_path":"index.md","locale":"en-us","canonical_url":"https:///en-us/","conceptual":"\n

Overview

\n

The Unity Container (Unity) is a lightweight, extensible dependency injection container. It facilitates building loosely coupled applications and provides developers with the following advantages:

\n
    \n
  • Simplified object creation, especially for hierarchical object structures and dependencies
  • \n
  • Abstraction of requirements; this allows developers to specify dependencies at run time or in configuration and simplify management of crosscutting concerns
  • \n
  • Increased flexibility by deferring component configuration to the container
  • \n
  • Service location capability; this allows clients to store or cache the container
  • \n
  • Instance and type interception
  • \n
  • Registration by convention
  • \n
\n

Issues and Contributions

\n
    \n
  • If something is broken and you know how to fix it, send a pull request.
  • \n
  • If you have no idea what is wrong, create an issue
  • \n
\n

Any feedback and contributions are welcome

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/index.md","depot_name":".","document_id":"b3c1f04b-5bdb-1c10-5237-024cf382b4cc","document_version_independent_id":"a79c6ec2-6514-508d-7d8a-5afe2098424f","gitcommit":"https://github.com/unitycontainer/documentation/blob/16b05445e1104378b26179a5de654cade919d174/index.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/index.md","original_content_git_url_template":"{repo}/blob/{branch}/index.md","rawTitle":"

Welcome to Unity Container Documentation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Welcome to Unity Container Documentation","updated_at":"2019-03-16 11:50 PM","wordCount":119},{"url":"/readme/","path":"readme/index.html","source_path":"README.md","locale":"en-us","canonical_url":"https:///en-us/readme/","conceptual":"

\"Build

\n

Unity Documentation

\n

This repository hosts source files and instructions for building Unity documentation site: https://unitycontainer.github.io

\n

If you'd like to contribute documentation or report an issue please do it in this repository.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/README.md","depot_name":".","document_id":"fa044e91-957c-6e6a-c3ea-f34d2312c709","document_version_independent_id":"394d5e5a-5a94-224f-1e9d-b5f0091e3023","gitcommit":"https://github.com/unitycontainer/documentation/blob/5792a5d4ced17c39833a82a94f817173edd8b1e8/README.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/README.md","original_content_git_url_template":"{repo}/blob/{branch}/README.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Documentation","updated_at":"2019-04-24 11:00 PM","wordCount":31},{"url":"/specs/constructor/","path":"specs/constructor/index.html","source_path":"specs/constructor.md","locale":"en-us","canonical_url":"https:///en-us/specs/constructor/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/constructor.md","depot_name":".","document_id":"9126e7af-2f05-1f78-b222-208d57a3bbb1","document_version_independent_id":"4409ebf6-cdc5-f9d9-28e6-71bf0dc9ec0d","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/constructor.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/constructor.md","rawTitle":"

Constructor Invocation Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Constructor Invocation Specification","uid":"Specification.Constructor","updated_at":"2019-03-05 04:11 AM","wordCount":0},{"url":"/specs/field/","path":"specs/field/index.html","source_path":"specs/field.md","locale":"en-us","canonical_url":"https:///en-us/specs/field/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/field.md","depot_name":".","document_id":"21325644-f894-73be-1ffe-22351adaad7b","document_version_independent_id":"532ca89a-e39a-c516-ca5b-83cc77530ab6","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/field.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/field.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/field.md","rawTitle":"

Field Injection Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Field Injection Specification","uid":"Specification.Field","updated_at":"2019-03-05 04:11 AM","wordCount":0},{"url":"/specs/hierarchy/","path":"specs/hierarchy/index.html","source_path":"specs/hierarchy.md","locale":"en-us","canonical_url":"https:///en-us/specs/hierarchy/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/hierarchy.md","depot_name":".","document_id":"cf95aa64-1190-5120-381c-3c4424395527","document_version_independent_id":"defd991b-323a-be9a-4b2f-89bdff23d53f","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/hierarchy.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/hierarchy.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/hierarchy.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","updated_at":"2019-03-05 04:11 AM","wordCount":0},{"url":"/specs/method/","path":"specs/method/index.html","source_path":"specs/method.md","locale":"en-us","canonical_url":"https:///en-us/specs/method/","conceptual":"\n

Method invocation is an optional step you can add to the created object's initialization. Any accessible method could be invoked, provided Unity can satisfy all the parameters with appropriate values.

\n

Supported Methods

\n

Any accessible method of constructed type can be invoked during initialization.

\n

Multiple methods can be configured for invokation.

\n

Generic methods

\n

Only closed generic methods can be invoked during initialization.

\n

Restrictions

\n

Static methods cannot be invoked

\n

Unity does not support invocation of static methods.

\n

Methods with ref or out parameters cannot be invoked

\n

Invoking methods containing ref or out parameters is not supported.

\n

Invoking private and protected methods is not allowed

\n

Although it is technically possible to call private and protected methods of the class, Unity does not support this feature. This restriction is implemented to impose consistency with accessibility principles of C# language.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/method.md","depot_name":".","document_id":"f07424a8-34d7-92fa-61b3-a4e680ff7cbc","document_version_independent_id":"8efce70f-f741-dcef-7f20-e6b8d20c4c96","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/method.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/method.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/method.md","rawTitle":"

Method Invocation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Method Invocation","uid":"Specification.Method","updated_at":"2019-03-05 04:11 AM","wordCount":135},{"url":"/specs/property/","path":"specs/property/index.html","source_path":"specs/property.md","locale":"en-us","canonical_url":"https:///en-us/specs/property/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/property.md","depot_name":".","document_id":"339f73ff-b58d-aa2b-9b70-0699fe989112","document_version_independent_id":"4ee9895a-57be-0951-3adc-89b15a05f315","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/property.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/property.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/property.md","rawTitle":"

Property Injection Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Injection Specification","uid":"Specification.Property","updated_at":"2019-03-05 04:11 AM","wordCount":0},{"url":"/specs/specification/","path":"specs/specification/index.html","source_path":"specs/specification.md","locale":"en-us","canonical_url":"https:///en-us/specs/specification/","conceptual":"\n

1 Introduction

\n

Unity is a full featured, general-purpose container for use in any type of Microsoft® .NET Framework-based application. It provides all of the features commonly found in dependency injection implementations.

\n

In addition, Unity is extensible. You can write container extensions that change the behavior of the container, or add new capabilities. For example, the interception feature provided by Unity, which you can use to add policies to objects, is implemented as a container extension.

\n

2 Terms and Definitions

\n

2.1 Injection

\n

2.2 Dependency

\n

2.3 Contract

\n
    \n
  • Type
  • \n
  • Name
  • \n
\n

2.4 Metadata

\n

2.5 Lifetime

\n

3 Workflow

\n

Setup

\n

Before container could be used it should be prepared for operation.

\n

Creating Container

\n
Root
\n
Scopes
\n

Type Contracts

\n
Implicit
\n
Mapping
\n
Explicit
\n
    \n
  • Instance
  • \n
  • Factory
  • \n
  • Type
  • \n
\n

Provide Services

\n

Locate Contract

\n
Existing
\n
Hierarchical
\n
None
\n
Create Locally
\n
With the registration
\n
At the root
\n

Execute contract

\n
From lifetime manager
\n
From pipeline
\n

Manage created objects

\n

Teardown

\n

Dispose child scopes

\n

Dispose managed objects

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/specification.md","depot_name":".","document_id":"af1bdcaf-14d5-7e77-0ec5-01d6d1c40baf","document_version_independent_id":"67bda16f-dd4a-fce2-8c4b-7bf7ce6f0edc","gitcommit":"https://github.com/unitycontainer/documentation/blob/fcf3dc0a8e1438e5b0d980be1f7a8ea83ed2efdc/specs/specification.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/specification.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/specification.md","rawTitle":"

Unity Container Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Container Specification","uid":"Specification.Unity","updated_at":"2019-03-06 11:21 PM","wordCount":149},{"url":"/specs/summary/","path":"specs/summary/index.html","source_path":"specs/summary.md","locale":"en-us","canonical_url":"https:///en-us/specs/summary/","conceptual":"\n
    \n
  1. Introduction
  2. \n
  3. Terms and Definitions\n
      \n
    1. Injection
    2. \n
    3. Dependency
    4. \n
    5. Contract\n
        \n
      • Type
      • \n
      • Name
      • \n
      \n
    6. \n
    7. Metadata
    8. \n
    9. Lifetime
    10. \n
    \n
  4. \n
  5. Workflow\n
      \n
    1. Setup\n
        \n
      1. Creating Container\n
          \n
        1. Root
        2. \n
        3. Scopes
        4. \n
        \n
      2. \n
      3. Type Contracts\n
          \n
        1. Implicit
        2. \n
        3. Mapping
        4. \n
        5. Explicit\n
            \n
          • Instance
          • \n
          • Factory
          • \n
          • Type
          • \n
          \n
        6. \n
        \n
      4. \n
      \n
    2. \n
    3. Provide Services\n
        \n
      1. Locate Contract\n
          \n
        1. Existing
        2. \n
        3. Hierarchical
        4. \n
        5. None\n
            \n
          1. Create Locally
          2. \n
          3. With the registration
          4. \n
          5. At the root
          6. \n
          \n
        6. \n
        \n
      2. \n
      3. Execute contract\n
          \n
        1. From lifetime manager
        2. \n
        3. From pipeline
        4. \n
        \n
      4. \n
      \n
    4. \n
    5. Manage created objects
    6. \n
    \n
  6. \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/summary.md","depot_name":".","document_id":"ebc52faa-cf9e-bb28-e329-137befaf18c0","document_version_independent_id":"9271befb-21eb-ce4a-1048-1301c975b0d0","gitcommit":"https://github.com/unitycontainer/documentation/blob/fcf3dc0a8e1438e5b0d980be1f7a8ea83ed2efdc/specs/summary.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/summary.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/summary.md","rawTitle":"

Summary

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Summary","uid":"Specification.Summary","updated_at":"2019-03-06 11:21 PM","wordCount":50},{"url":"/specs/toc.json","path":"specs/toc.json","source_path":"specs/toc.yml","locale":"en-us"},{"url":"/specs/workflow/","path":"specs/workflow/index.html","source_path":"specs/workflow.md","locale":"en-us","canonical_url":"https:///en-us/specs/workflow/","conceptual":"\n

Before container could be used it should be prepared for operation.

\n

Creating Container

\n
Root
\n
Scopes
\n

Type Contracts

\n
Implicit
\n
Mapping
\n
Explicit
\n
    \n
  • Instance
  • \n
  • Factory
  • \n
  • Type
  • \n
\n

Provide Services

\n

Locate Contract

\n
Existing
\n
Hierarchical
\n
None
\n
Create Locally
\n
With the registration
\n
At the root
\n

Execute contract

\n
From lifetime manager
\n
From pipeline
\n

Manage created objects

\n

Teardown

\n

Dispose child scopes

\n

Dispose managed objects

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/workflow.md","depot_name":".","document_id":"92912b1a-fce7-7872-3d33-3afd56ebc1eb","document_version_independent_id":"a7106ca5-04de-eed2-29a3-e2b877b19db9","gitcommit":"https://github.com/unitycontainer/documentation/blob/ddaee7af1f7438438cc8e0af39906104a6afe004/specs/workflow.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/workflow.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/workflow.md","rawTitle":"

Setup

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Workflow","uid":"Specification.Workflow","updated_at":"2019-03-06 03:02 AM","wordCount":55},{"url":"/toc.json","path":"toc.json","source_path":"toc.yml","locale":"en-us"},{"url":"/tutorials/annotation/annotation/","path":"tutorials/annotation/annotation/index.html","source_path":"tutorials/Annotation/annotation.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/annotation/annotation/","conceptual":"\n

One of the most useful and powerful techniques when using Unity is to take advantage of dependency injection for the parameters of class constructors and methods, and for the values of fields and properties. This approach allows you to resolve and populate the entire hierarchy of objects used in your application based on type registrations and mappings defined in the container, with the subsequent advantages this offers.

\n

You can specify constructor, field, property, and method call injection information in configuration or by adding registrations to the container at run time. You can also apply attributes to members of your classes to indicate injection targets. When you resolve these classes through the container, Unity will generate instances of the dependent objects and wire up the injection targets with these instances.

\n

Using Injection Attributes

\n

Normally, Unity performs selection of the constructor automatically by choosing the most complex constructor it can satisfy with dependencies and populating these parameters with resolved values when it constructs the object. In some cases, for various reasons, the constructor could not be selected successfully and container may throw an exception.

\n

Constructor Annotation

\n

To disambiguate selection or to override automatic behavior you could specify which constructor Unity should use to construct the object by marking it with InjectionConstructor attribute.

\n

Member Annotation

\n

Property, field, and method call injections do not occur automatically unless registered with appropriate injection members at run time. To enable automatic member injection for types you can add attributes to the members of your classes to force injection of dependent objects when the target class is resolved.

\n

Required and Optional

\n

Fields, Properties, and Parameters could be annotated with either Dependency or OptionalDependency attributes to indicate that these require values to be injected. For annotating methods you wish to be called during initialization you could use InjectionMethod

\n

For more information, see:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/annotation.md","depot_name":".","document_id":"29642b10-fdb8-4b72-8854-aa787580a1f2","document_version_independent_id":"49daebef-832d-2c5b-99f9-0b1b2cc00ffb","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/tutorials/Annotation/annotation.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/annotation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/annotation.md","rawTitle":"

Attributed Injection Model

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Attributed Injection Model","uid":"Tutorial.Annotation","updated_at":"2019-03-16 08:42 PM","wordCount":327},{"url":"/tutorials/annotation/constructor/","path":"tutorials/annotation/constructor/index.html","source_path":"tutorials/Annotation/constructor.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/annotation/constructor/","conceptual":"\n

To select constructors you create through the Unity container, you can use the following three techniques:

\n\n

Annotated Constructor Injection

\n

Constructor Injection with Attribute Annotation allows you to apply attributes to the class' constructor designating it for dependency injection. When creating the class, Unity will always (unless explicitly overwritten in Registration) use that constructor. You only need to use this technique when there is more than one constructor in the target type.

\n

Annotating a Constructor

\n

When a target class contains more than one constructor and the automatic algorithm does not provide desired selection, you may use the InjectionConstructor attribute to specify the constructor you wish to use for injection.

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this example type Service contains four public constructors. Three of these constructors have one parameter each. A Type like this creates an ambiguity that Unity could not resolve by itself.

\n
\n
WARNING
\n

During resolution, the container will pick the first constructor it could satisfy with dependencies and will use it. In the example above, it could be any of the three constructors with one parameter.

\n
\n

The container is not trying to validate all available contractors during normal execution.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructors.

\n
\n

Normally, Unity would select the third constructor with three parameters, but by annotating the second constructor with the attribute you force Unity to use it during resolution.

\n

Multiple Constructor Annotations

\n

Annotating multiple constructors with injection parameters is not recommended. Unity is not guaranteed to process constructors in certain order. If multiple constructors are annotated, behavior might change from version to version.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructor annotations.

\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/constructor.md","depot_name":".","document_id":"78a4a31f-8f9d-b1b8-c4d8-5ee0709c8dc8","document_version_independent_id":"f6ecaf01-9c4e-2b5e-7627-55221cde4f1c","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Annotation/constructor.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/constructor.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating Type for Constructor Injection","uid":"Tutorial.Annotation.Constructor","updated_at":"2019-04-05 01:56 AM","wordCount":385},{"url":"/tutorials/annotation/field/","path":"tutorials/annotation/field/index.html","source_path":"tutorials/Annotation/field.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/annotation/field/","conceptual":"\n

By default Unity does not inject any fields of the classes it creates.

\n

To enable field injection you need to configure Unity during registration of annotate appropriate fields with dependency attributes. Unity supports two types of field injection:

\n
    \n
  • Required injection - Unity either satisfies this dependency or throws an exception
  • \n
  • Optional injection - Unity either satisfies this dependency or returns null
  • \n
\n

Field injection

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/field.md","depot_name":".","document_id":"3e5f244d-d6a9-5148-d40d-89c6eb8569f6","document_version_independent_id":"fa6bed51-64f2-74c1-6c10-b4352c0c8e58","gitcommit":"https://github.com/unitycontainer/documentation/blob/ddaee7af1f7438438cc8e0af39906104a6afe004/tutorials/Annotation/field.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/field.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/field.md","rawTitle":"

Annotating types for Field injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating types for Field injection","uid":"Tutorial.Annotation.Field","updated_at":"2019-03-06 03:02 AM","wordCount":63},{"url":"/tutorials/annotation/method/","path":"tutorials/annotation/method/index.html","source_path":"tutorials/Annotation/method.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/annotation/method/","conceptual":"\n

Method invocation is an optional step you can add to the created object's initialization. Any accessible method could be invoked, provided Unity can satisfy all the parameters with appropriate values.

\n

Method Invocation

\n

To enable method invocation during object initialization you could apply InjectionMethod attribute to the method you want to be executed.

\n
public class Service\n{\n    ...\n    private void PreInitialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void Initialize(...)\n    {\n        ...\n    }\n\n    public void PostInitialize(...)\n    {\n        ...\n    }\n}\n
\n

In the example above, attribute InjectionMethod is applied to method Initialize(...) and the method will be executed immediately after the object is created.

\n

Multiple Method Invocation

\n

Unity does not place any restrictions on how many methods of the class will be invoked during the initialization. You could mark any and all methods with the attribute and Unity will execute them all:

\n
public class Service\n{\n    ...\n\n    [InjectionMethod]\n    public void PreInitialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void Initialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void PostInitialize(...)\n    {\n        ...\n    }\n}\n
\n

Restrictions

\n

Static methods cannot be invoked

\n

Unity does not support invocation of static methods. Static methods annotated with InjectionMethod attribute will be ignored. If Unity Diagnostic is enabled, the container will throw an exception when it encounters such an annotation.

\n

Methods with ref or out parameters cannot be invoked

\n

Methods containing ref or out parameters cannot be invoked during initialization. The container will throw an exception if encountered these.

\n
public class Service\n{\n    [InjectionMethod]  // Error\n    public void Method1(ref object refObject)\n    {\n        ...\n    }\n    ...\n\n    [InjectionMethod]  // Error\n    public void Method2(out object outObject)\n    {\n        ...\n    }\n}\n
\n

In the example above neither Method1(ref object refObject) nor Method2(out object outObject) should be annotated for invocation. Doing so will create an error condition.

\n

Invoking private and protected methods is not allowed

\n

Although it is technically possible to call private and protected methods of the class, Unity does not support this feature. This restriction is implemented to impose consistency with accessibility principles of C# language.

\n

Unity will ignore attributes on non-accessible methods.

\n
public class Service\n{\n    ...\n\n    [InjectionMethod]  // Error\n    protected void ProtectedMethod(...)\n    {\n        ...\n    }\n}\n
\n

In the example above method ProtectedMethod(...) will not be called.

\n

If Unity Diagnostic is enabled, the container will throw an exception when it encounters this condition.

\n

For more information see Unity Diagnostic.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/method.md","depot_name":".","document_id":"5ae531df-dce4-5f36-9c71-e384a74e77dc","document_version_independent_id":"f8c80055-fe8e-50ca-9e17-07b04982b1ac","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Annotation/method.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/method.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/method.md","rawTitle":"

Annotating types for Method invocation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating types for Method invocation","uid":"Tutorial.Annotation.Method","updated_at":"2019-04-05 01:56 AM","wordCount":368},{"url":"/tutorials/annotation/parameter/","path":"tutorials/annotation/parameter/index.html","source_path":"tutorials/Annotation/parameter.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/annotation/parameter/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/parameter.md","depot_name":".","document_id":"f85b065f-2cd0-8da7-c090-a2590a7b6682","document_version_independent_id":"5d0e49be-3a43-6aaf-47d6-fb8c7fed5bc9","gitcommit":"https://github.com/unitycontainer/documentation/blob/3ce1397a639bc01a45da7e6143e5be8bb2e67818/tutorials/Annotation/parameter.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/parameter.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/parameter.md","rawTitle":"

Annotating Constructors and Methods for Parameter Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating Constructors and Methods for Parameter Injection","uid":"Tutorial.Annotation.Parameter","updated_at":"2019-03-04 04:07 AM","wordCount":0},{"url":"/tutorials/annotation/property/","path":"tutorials/annotation/property/index.html","source_path":"tutorials/Annotation/property.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/annotation/property/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/property.md","depot_name":".","document_id":"6814e60e-6ade-f695-88c6-035d214a78dd","document_version_independent_id":"fbdced5a-ca01-4bd7-b80b-69048ade93ef","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/tutorials/Annotation/property.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/property.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/property.md","rawTitle":"

Annotating Objects for Property Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Injection Annotation","uid":"Tutorial.Annotation.Property","updated_at":"2019-03-16 08:42 PM","wordCount":0},{"url":"/tutorials/composition/buildup/buildup/","path":"tutorials/composition/buildup/buildup/index.html","source_path":"tutorials/Composition/BuildUp/buildup.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/buildup/buildup/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/BuildUp/buildup.md","depot_name":".","document_id":"ac5e69d2-90ac-2ebc-2061-3bd40761c5ed","document_version_independent_id":"8b0dbe0c-bfb5-b68b-f782-5702f0b90f85","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/BuildUp/buildup.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/BuildUp/buildup.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/BuildUp/buildup.md","rawTitle":"

Build Up

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Object Build Up","uid":"Tutorial.BuildUp","updated_at":"2019-04-30 12:00 AM","wordCount":0},{"url":"/tutorials/composition/collections/","path":"tutorials/composition/collections/index.html","source_path":"tutorials/Composition/collections.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/collections/","conceptual":"\n

Unity supports creating multiple registration of the same type by adding a name to the registration. It is useful if you want to register different services of the same type. For example, if you have multiple printers and you want them all to be available to consumers you would register them like this:

\n
container.RegisterInstance<IPrinter>(printer); // default printer\ncontainer.RegisterInstance<IPrinter>(printer1,   "Office Printer");\ncontainer.RegisterInstance<IPrinter>(printer2,   "Printer at the deli on the street corner");\ncontainer.RegisterType<IPrinter, NeighborPrinter>("Office printer near me");\n
\n

When you want to obtain a list of all the registered objects of a specific type, IPrinter in this case, you can use the array T[] or IEnumerable<T> of that type. The difference between array and enumerable resolution is that array only returns named (nondefault name) registrations where enumerable always returns all, named and unnamed registrations.

\n

Resolving array T[]

\n

When resolving array of a type, Unity will return an array containing only types registered with nondefault (other than null) names. In example above call to Resolve will return array of only three elements:

\n
IPrinter[] printers = container.Resolve<IPrinter[]>();\nAssert(3 == printers.Length)\n
\n

Instance printer will not be returned because it was registered with no name.

\n

Resolving IEnumerable<T>

\n

IEnumerable<T> returns an enumerable containing all registrations of type T, including default (with name null) registrations. In example above it will return all four registrations:

\n
IPrinter[] printers = container.Resolve<IEnumerable<IPrinter>>();\nAssert(4 == printers.Count())\n
\n

Resolving List<T> of types

\n

Unity does not have any special provisions to support List<T> but because List type's longest exposed constructor is

\n
public List(IEnumerable<T> items)\n
\n

Unity is able to resolve List<T>. Consider this example:

\n
var printers = container.Resolve<List<IPrinter>>();\nAssert(4 == printers.Count)\n
\n

Unity creates type List<IPrinter> and during initialization selects longest constructor it can satisfy with dependencies (List(IEnumerable<T> items)). It crates the enumeration and passes it to List constructor. Resulting instance is a list of all registrations of that type.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/collections.md","depot_name":".","document_id":"0884b99e-0a93-edc3-f12f-ad8b3a65a047","document_version_independent_id":"e03b645c-3edf-6832-3486-73089b8efedc","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/collections.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/collections.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/collections.md","rawTitle":"

Resolving collections of Objects of a Particular Type

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Collections","uid":"Tutorial.Collections","updated_at":"2019-04-30 12:00 AM","wordCount":300},{"url":"/tutorials/composition/composition/","path":"tutorials/composition/composition/index.html","source_path":"tutorials/Composition/composition.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/composition/","conceptual":"\n

Composition is a general term describing creation and initialization of an object. During composition an object is created and initialized with all of its dependencies and initialization methods.

\n

Since each dependency might have its own dependencies entire dependency graph has to be created and each node has to be initialized in order of priority.

\n

The Unity container supports two types of composition:

\n

Resolution

\n

Resolution is a process where an object is built from scratch. In other words, the container is allocating the memory for an object, calls a constructor with all of its dependencies and performs all necessary initialization required by the type. For more information see Object Resolution

\n

Building Up

\n

Building up is a process where the container does not create an object but initializes already created object. This is useful when an object is part of an infrastructure and author does not have access or control of how these are created.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/composition.md","depot_name":".","document_id":"1457e229-39bc-a777-76a7-92e4438da74e","document_version_independent_id":"31268c2a-a9a6-f73d-3573-58f93512e7b2","gitcommit":"https://github.com/unitycontainer/documentation/blob/2b566771060defc33c61a481b10ffc9c8786eba9/tutorials/Composition/composition.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/composition.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/composition.md","rawTitle":"

Composition

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Composition","uid":"Tutorial.Composition","updated_at":"2019-07-31 11:26 AM","wordCount":153},{"url":"/tutorials/composition/generics/deferred/","path":"tutorials/composition/generics/deferred/index.html","source_path":"tutorials/Composition/Generics/deferred.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/generics/deferred/","conceptual":"\n

Unity provides a technique to facilitate holding a reference to an object you need, but do not want to construct right away. You wish to defer resolution of the object. Instead of creating a factory for the type and injecting the factory into your class, then using it to create the type you want you can use the .NET standard type Func (C#) or Func(Of T) (Visual Basic) with the Resolve method. This returns a delegate that, when invoked, calls into the container and returns an instance of the specified type (in this case, T).

\n

You can even create a delegate in this way without creating a registration or mapping for the specified type in the container if you wish. Because the resolve action only takes place when you invoke the delegate, subsequent registrations added to the container are available when the target object is resolved. This means that you can manipulate the registrations and mappings in the container at any point before you resolve the target object (although you can obviously register the type before you create the delegate if you prefer).

\n

For example, you can create a delegate for a component named MyClass, and then register a mapping for it and perform deferred resolution when required using the following code.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create a delegate for the IMyClass interface type\nvar resolver = myContainer.Resolve<Func<IMyClass>>();\n\n// ... other code here...\n\n// Register a mapping for the IMyClass interface to the MyClass type\nmyContainer.RegisterType<IMyClass, MyClass>();\n\n// Resolve the mapped target object\nIMyClass myClassInstance = resolver();\n
\n

You can use this approach when you resolve the type using the Resolve method, or you can specify the delegate when you configure constructor, property setter, or method call injection. You can also use named (non-default) registrations by including the registration name in the call to the Resolve method and the RegisterType method, just as you would when using these methods for non-deferred resolution.

\n

In addition, you can use this feature to perform deferred resolution of multiple named registrations, as an alternative to using the ResolveAll method. For example, if you have multiple named registrations for the IMyClass interface to suitable concrete types, you can obtain a collection of the resolved types. The following code illustrates this.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create an IEnumerable resolver for the IMyClass interface type\nvar resolver = myContainer.Resolve<Func<IEnumerable<IMyClass>>>();\n\n// ... other code here...\n\n// Register mappings for the IMyClass interface to appropriate concrete types\nmyContainer.RegisterType<IMyClass, FirstClass>("First");\nmyContainer.RegisterType<IMyClass, SecondClass>("Second");\nmyContainer.RegisterType<IMyClass, ThidClass>("Third");\n\n// Resolve a collection of the mapped target objects\nIEnumerable<IMyClass> myClassInstances = resolver();\n
\n

You can also use the deferred resolver to resolve instance registrations. For example, the following code shows how you can resolve an IEnumerable collection of string values.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create an IEnumerable resolver for string instance registrations\nvar resolver = myContainer.Resolve<Func<IEnumerable<string>>>();\n\n// ... other code here...\n\n// Register mappings for the IMyClass interface to appropriate concrete types\nmyContainer.RegisterInstance("one", "FirstString");\nmyContainer.RegisterInstance("two", "SecondString");\nmyContainer.RegisterInstance("three", "ThirdString");\n\n// Resolve a collection of the strings\nIEnumerable<string> myStringInstances = resolver();\n
\n
","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/deferred.md","depot_name":".","document_id":"a1f92544-a7e3-3af7-c90f-d602719ebcfa","document_version_independent_id":"ec0143ad-09ff-c2bb-f179-d04c151dfa62","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Generics/deferred.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/deferred.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/deferred.md","rawTitle":"

Deferring the Resolution of Objects

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Deferred Resolution","uid":"Tutorial.Deferred","updated_at":"2019-04-30 12:00 AM","wordCount":520},{"url":"/tutorials/composition/generics/generics/","path":"tutorials/composition/generics/generics/index.html","source_path":"tutorials/Composition/Generics/generics.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/generics/generics/","conceptual":"\n

You resolve generic types in much the same way as you resolve non-generic types. The primary difference is with unbound types. The specification of the type arguments depend on the definition of the mapped type or the type you are resolving:

\n
    \n
  • If the mapped type or the type you are resolving is a bound type, you can only resolve an instance of the type using the defined type arguments. For example, if the mapped type has type arguments of type string and DateTime, you must specify these in the call to the Resolve method.

    \n
  • \n
  • If the mapped type or the type you are resolving is an unbound type, you can resolve an instance of the type using any types for the type arguments. The target class must be able to process arguments of the type you specify. For example, if one of the type arguments you specify is the type Boolean, the class must be able to handle Boolean values for that argument and not attempt to parse the value into a DateTime instance.

    \n
  • \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/generics.md","depot_name":".","document_id":"a92a9f46-f50f-2f68-4bb8-5e7652680910","document_version_independent_id":"4e0f56a0-6763-4bbf-372b-b019b3d8caa4","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Generics/generics.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/generics.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/generics.md","rawTitle":"

Generic Types

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Generics","uid":"Tutorial.Generics","updated_at":"2019-04-30 12:00 AM","wordCount":174},{"url":"/tutorials/composition/generics/lazy/","path":"tutorials/composition/generics/lazy/index.html","source_path":"tutorials/Composition/Generics/lazy.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/generics/lazy/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/lazy.md","depot_name":".","document_id":"9b5a7104-d6da-4330-733e-273254cf63cf","document_version_independent_id":"4188df6c-93dd-f51a-63be-280e09e8beda","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Generics/lazy.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/lazy.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/lazy.md","rawTitle":"

Lazy

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Lazy","uid":"Tutorial.Lazy","updated_at":"2019-04-30 01:18 AM","wordCount":0},{"url":"/tutorials/composition/generics/metadata/","path":"tutorials/composition/generics/metadata/index.html","source_path":"tutorials/Composition/Generics/metadata.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/generics/metadata/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/metadata.md","depot_name":".","document_id":"ac43e2ab-6d9a-2ed0-8c89-80b21278762e","document_version_independent_id":"f5d1d529-9ad8-fb0c-2f65-e9f4c3c42474","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Generics/metadata.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/metadata.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/metadata.md","rawTitle":"

Generic Metadata

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Metadata","uid":"Tutorial.Generics.Metadata","updated_at":"2019-04-30 12:00 AM","wordCount":0},{"url":"/tutorials/composition/mapping/generic/","path":"tutorials/composition/mapping/generic/index.html","source_path":"tutorials/Composition/Mapping/generic.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/mapping/generic/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/generic.md","depot_name":".","document_id":"418b01e6-2886-a05c-94d3-2695d8234782","document_version_independent_id":"c730bf6f-c479-0b44-0b51-e7754d3759c9","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Mapping/generic.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/generic.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Mapping/generic.md","rawTitle":"

Generic Type Mapping

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Generic Type Mapping","uid":"Tutorial.Mapping.Generic","updated_at":"2019-04-30 01:18 AM","wordCount":0},{"url":"/tutorials/composition/mapping/implementation/","path":"tutorials/composition/mapping/implementation/index.html","source_path":"tutorials/Composition/Mapping/implementation.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/mapping/implementation/","conceptual":"\n

Service to Implementation mapping is done during the service registration.

\n

The Service Itself

\n

The simplest type of registration is when service is registered by its own type. For Type and Instance registration you could do so by simply registering the type or the instance:

\n
container.RegisterType<Foo>();\ncontainer.RegisterInstance(new Foo());\n
\n

A factory has to specify type it is registered under:

\n
container.RegisterFactory<Foo>((c, t, n) => new Foo());\n
\n

Mapping Contract to Implementation

\n

When you map Registered type to implementation type you specify an service type first and implementation type second:

\n
container.RegisterType<IFoo, Foo>();\ncontainer.RegisterInstance<IFoo>(new Foo());\n
\n

In case of factory registration the container does not care how it is implemented by the factory, all it cares is how it is registered:

\n
container.RegisterFactory<IFoo>((c, t, n) => new Foo());\n
\n

Building and Mapping to Implementation

\n

Mapping allows redirection to existing registrations and services as well as building new instances of implementation types.

\n

Mapping to Existing Service

\n

The Unity container supports a scenario where a mapping does not crate type itself but rather references existing service registered with the container. Consider the following:

\n
public class Foo : IFoo1, IFoo2\n{\n    public Foo()\n    {\n    }\n\n    public Foo(object _)\n    {\n    }\n}\n\ncontainer.RegisterInstance<IFoo>(new Foo(), InstanceLifetime.Singleton);\n\ncontainer.RegisterType<IFoo1, Foo>();\n
\n

The container has a registration for type Foo. When interface IFoo1 is mapped to Foo it instructs the container to resolve the default implementation for the type Foo. Because the mapping does not provide any instructions how the type should be built, the default implementation, or existing registration should be used.

\n

So, when the container will be resolving IFoo1 it will first check if Foo is already registered and will used the registration to satisfy the request.

\n

If a mapping references non existing service the container will try to build the service from the implementation type.

\n

Building Implementation Type

\n

If the implementation type points to no existing registration or if an instance has to be created using certain rules, the container will create a new, independent pipeline and execute. So if you register IFoo2 like this:

\n
container.RegisterType<IFoo2, Foo>(Invoke.Constructor());\n
\n

the Unity container will not redirect to Foo but will create a new instance of Foo and call default constructor.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/implementation.md","depot_name":".","document_id":"67e38e86-49da-e80c-aa14-d18939f99491","document_version_independent_id":"6916f8de-fba9-4c35-b3b8-6cc40a8e8412","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Mapping/implementation.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/implementation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Mapping/implementation.md","rawTitle":"

Service to Implementation Mapping

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Service to Implementation Mapping","uid":"Tutorial.Mapping.Implementation","updated_at":"2019-04-30 01:18 AM","wordCount":351},{"url":"/tutorials/composition/mapping/mapping/","path":"tutorials/composition/mapping/mapping/index.html","source_path":"tutorials/Composition/Mapping/mapping.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/mapping/mapping/","conceptual":"\n

In service oriented architecture components expose services through well known contracts. In C# terms the contracts are the abstract classes or interfaces these components and services are exposing. So when we say service type, in most of the cases, we mean the interfaces implementing the contract. And the components are called Implementation types.

\n

Unity allows to publish these components and make all the contracts they implement available to clients to consume. This publishing and "advertisement" is done by registering types and interfaces (contracts) associated with components.

\n

Registration Type

\n

Registration type is the type of the 'Contract' this service provides. It could be the Type of the service itself of any of the base types it implements.

\n

Service To Implementation Mapping

\n

The mapping is done when service is registered. Any type of registration (Type, Factory, Instance) allow to associate a service with different contracts.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/mapping.md","depot_name":".","document_id":"114f92db-344c-abca-7962-b9478c9610ee","document_version_independent_id":"ad129655-e31c-3d02-6062-cb5934ae425f","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Mapping/mapping.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/mapping.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Mapping/mapping.md","rawTitle":"

Type Mapping

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Type Mapping","uid":"Tutorial.Mapping","updated_at":"2019-04-30 01:18 AM","wordCount":143},{"url":"/tutorials/composition/overrides/dependency/","path":"tutorials/composition/overrides/dependency/index.html","source_path":"tutorials/Composition/Overrides/dependency.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/overrides/dependency/","conceptual":"\n

Dependency override is a special kind of override. It does not target any members or parameters. Instead, it overrides a contract that the container would have resolved when requested. In other words, when the dependency is being resolved from the container, if the contract matches, it will provide that value instead.

\n

Injected Members and Dependency overrides

\n

There are two types of dependency injection the Unity container supports:

\n
    \n
  • Value injection
  • \n
  • Value resolution
  • \n
\n

To understand how Dependency Override works you need to remember, it only overrides resolved values.

\n

Injected Values

\n

Values are injected during Type registration. At that time you provide instructions on how to initialize the Type and its members. The members injected with values via Injection Members will not be affected by the Dependency Override.

\n

Resolved Values

\n

All the dependencies that are not injected with values, or injected with resolve redirection are potential targets for the override. Anything that asks the container to resolve a value can be Dependency Overridden.

\n

Overriding dependencies

\n

Dependency Override enables you to specify an override for the specified dependency type contract. It, enables you to pass in an object that will be returned as a dependency, instead of the one resolved from the container.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/dependency.md","depot_name":".","document_id":"a57a3be5-47d3-51c5-f36f-7bb1a351d43f","document_version_independent_id":"7e8b2795-7571-1855-6237-b30f66013643","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/dependency.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/dependency.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/dependency.md","rawTitle":"

Dependency Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Dependency Override","uid":"Tutorial.Resolution.Override.Dependency","updated_at":"2019-04-30 12:00 AM","wordCount":199},{"url":"/tutorials/composition/overrides/field/","path":"tutorials/composition/overrides/field/index.html","source_path":"tutorials/Composition/Overrides/field.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/overrides/field/","conceptual":"\n

FieldOverride enables you to override the value for a specified field. Only the field value is overridden, not the properties selected. Its behavior is the same as ParameterOverride. The use of the OnType method enables you to specify a type to constrain the override to.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/field.md","depot_name":".","document_id":"7054362e-ab65-8ef6-cce1-7a89caee8ea0","document_version_independent_id":"f4d61c91-c65f-610e-5706-372bc1405786","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/field.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/field.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/field.md","rawTitle":"

Field Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Field Overrides","uid":"Tutorial.Resolution.Override.Field","updated_at":"2019-04-30 12:00 AM","wordCount":45},{"url":"/tutorials/composition/overrides/override/","path":"tutorials/composition/overrides/override/index.html","source_path":"tutorials/Composition/Overrides/override.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/overrides/override/","conceptual":"\n

The parameter and dependency overrides, ParameterOverride and DependencyOverride, are ResolverOverride implementations that provide support for overriding the registration information for resolving instances of types. When you call the Resolve method, these classes enable you to override values specified when the type was registered, such as by a RegisterType or RegisterInstance statement. In effect, RegisterType supplied values are overridden by Resolve supplied values.

\n

Use ParameterOverride to override the specified constructor parameter or parameters. The override applies everywhere the parameter appears unless you use OnType to constrain the override to a specified type. Since the purpose of overrides is to affect the resolution of dependencies for all relevant created objects, not just the object requested in the call to Resolve, unconstrained overrides can produce errors if there are unconstrained ParameterOverride parameters that match parameters with the same name but different types on the selected constructors for objects created in a given resolve operation.

\n

Use PropertyOverride to override the value of the specified property or properties. The override applies everywhere the property appears unless you use OnType to constrain the override to a specified type.

\n

Use DependencyOverride to override the value injected whenever there is a dependency of the given type. DependencyOverride overrides all instances where the type matches. Both parameter overrides and dependency overrides support generic types and multiple overrides.

\n

Overrides work with the constructor that is selected for the type, by attribute or configuration. If the constructor to be used is not identified with an attribute or explicit container configuration, then the default behavior is that the constructor with the most parameters will be used.

\n

A parameter and property override never affects what element gets selected. They only control the value of the specified parameter or property. You do not change which constructor is called with an override, and you do not change which properties get set with an override.

\n\n

\"Resolver

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/override.md","depot_name":".","document_id":"c6321cd0-ca7d-d962-a1d6-cafd2304b46d","document_version_independent_id":"d81b6079-c1d9-1fb6-de0e-275b2b70cf4a","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/override.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/override.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/override.md","rawTitle":"

Overriding dependencies during resolution

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Resolution Override","uid":"Tutorial.Resolution.Override","updated_at":"2019-04-30 12:00 AM","wordCount":317},{"url":"/tutorials/composition/overrides/parameter/","path":"tutorials/composition/overrides/parameter/index.html","source_path":"tutorials/Composition/Overrides/parameter.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/overrides/parameter/","conceptual":"\n

Unity enables you to pass in values for parameter dependencies to override a parameter passed to a given constructor or method. Only the parameter value is overridden, not the constructor or method selection.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/parameter.md","depot_name":".","document_id":"ba453611-c12b-550a-6561-07b81942e916","document_version_independent_id":"8aeb5e95-0a66-e52d-6553-af3a0ae20166","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/parameter.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/parameter.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/parameter.md","rawTitle":"

Parameter Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Parameter Override","uid":"Tutorial.Resolution.Override.Parameter","updated_at":"2019-04-30 12:00 AM","wordCount":33},{"url":"/tutorials/composition/overrides/property/","path":"tutorials/composition/overrides/property/index.html","source_path":"tutorials/Composition/Overrides/property.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/overrides/property/","conceptual":"\n

PropertyOverride enables you to override the value for a specified property. Only the property value is overridden, not the properties selected. Its behavior is the same as ParameterOverride. The use of the OnType method enables you to specify a type to constrain the override to.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/property.md","depot_name":".","document_id":"9bee940d-3cf7-23a1-fc98-ed62d6797ee2","document_version_independent_id":"a616e5e2-d7c1-7f70-d255-96f921f486df","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/property.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/property.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/property.md","rawTitle":"

Property Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Override","uid":"Tutorial.Resolution.Override.Property","updated_at":"2019-04-30 12:00 AM","wordCount":45},{"url":"/tutorials/composition/resolution/resolution/","path":"tutorials/composition/resolution/resolution/index.html","source_path":"tutorials/Composition/Resolution/resolution.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/resolution/resolution/","conceptual":"\n

There are types you can create immediately from the container and there are types that require registration. Generally any primitive type would require registration and all classes are available immediately.

\n

You can use the Unity container to generate instances of any object that has a public constructor (in other words, objects that you can create using the new operator). When you call the Resolve method and specify the type that is not registered, the container simply generates and returns an instance of that type. However, the only time that this is realistically practical is when the object you are generating does not have ambiguities Unity could not resolve or contains dependency attributes that the container will use to inject dependent objects into the requested object.

\n

The Unity container identifies type registrations and type mappings in the container using a type and, optionally, a name. The type is an interface or a class (usually an interface or base class) that the desired concrete object type implements or inherits. This identifies the mapping so that the container can retrieve the correct object type in response to a call to the Resolve method. Where there is more than one mapping for the same type, the optional name differentiates these mappings and allows code to specify which of the mappings for that type to use.

\n

The provision of both generic and non-generic overloads of many of the Unity container methods ensures that Unity can be used in languages that do not support generics. You can use either approach (the generic or the non-generic overloads) in your code and mix them as required.

\n

The following topics describe how you can resolve objects using the Resolve or BuildUp methods:

\n\n

For more information about how you can configure Unity with type registrations and mappings, see Registration.

\n

For more information about how you can perform dependency injection on existing object instances, see Using BuildUp to Wire Up Objects Not Created by the Container.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/resolution.md","depot_name":".","document_id":"1dde0392-5274-483b-f246-6a10afef0c27","document_version_independent_id":"09d0cec4-ec13-4b5a-a4d6-a94c867fe156","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Resolution/resolution.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/resolution.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Resolution/resolution.md","rawTitle":"

Resolving Objects

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Object Resolution","uid":"Tutorial.Resolution","updated_at":"2019-04-30 12:00 AM","wordCount":347},{"url":"/tutorials/composition/resolution/type/","path":"tutorials/composition/resolution/type/index.html","source_path":"tutorials/Composition/Resolution/type.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/resolution/type/","conceptual":"\n

Unity provides a method named Resolve that you can use to resolve an object by type, and optionally by providing a registration name. Registrations that do not specify a name are referred to as default registrations. This topic describes how to use the Resolve method to resolve types and mappings registered as default registrations.

\n

The Resolve Method Overloads for Default Registrations

\n

The following table describes the overloads of the Resolve method that return instances of objects based on the default registrations and mappings with the container. The API for the Unity container contains both generic and non-generic overloads of this method so that you can use it with languages that do not support the generics syntax.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MethodDescription
Resolve<T>()Returns an instance of the type registered with the default name as the type T.
Resolve(Type t)Returns an instance of the default type registered with the container as the type t.
Resolve<T>(string name)Returns an instance of the type registered with the container as the type T and with the specified name. Names are case sensitive.
Resolve(Type t, string name)Returns an instance of the type registered with the container as the type t and with the specified name. Names are case sensitive.
\n

Using the Resolve Method with Default Registrations

\n

The following examples show how you can use the Resolve method to create or obtain a reference to an object defined in the container configuration. Typically you will register a type mapping between an interface and a concrete type that implements it, or between a base class and a concrete type that inherits it. The examples use the run-time methods of the container to register the types it will resolve.

\n

Resolving Types Registered as Interfaces

\n

The following code registers a mapping for an interface named IService and specifies that the container should return an instance of the CustomerService class (which implements the IService interface). In this case, the type IService identifies the registration type. Code that requests an instance of the type IService receives an instance of the CustomerService class. The following example uses the generic overloads of the container methods.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\n\nvar instance = container.Resolve<IService>();\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\n\nvar instance = (IService)container.Resolve(typeof(IMyService));\n
\n

Resolving Types Registered as Base Classes

\n

When you need to register a mapping for a base class or other object type (instead of an interface), you use the overloads of the RegisterType and Resolve methods that accept object type names. The following examples show the use of the overloads of the RegisterType and Resolve methods that accept object type names as the registration identifier.

\n

The following code registers a mapping for an object named MyBaseService and specifies that the container should return an instance of the CustomerService class (which inherits from the MyBaseService class). In this case, the type MyBaseService identifies the registration. Code that requests an instance of the type MyBaseService receives an instance of the CustomerService class.

\n
IUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<MyBaseService, CustomerService>();\n\nMyBaseService myServiceInstance = myContainer.Resolve<MyBaseService>();\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType(typeof(MyBaseService), typeof(CustomerService));\n\nMyBaseService myServiceInstance = (MyBaseService)myContainer.Resolve(typeof(MyBaseService));\n
\n

Using the Resolve Method with Named Registrations

\n

If you need to create multiple registrations for the same type, you can specify a name to differentiate each registration. Then, to retrieve an object of the appropriate type, you specify the name and the registered type. Following examples demonstrate the technique:

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\ncontainer.RegisterType<IService, CompanyService>("name");\ncontainer.RegisterType<IService, ExternalService>("other name");\n\nvar instance = container.Resolve<IService>("name");\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, EmailService>();\ncontainer.RegisterType<IService, LDAPService>("name");\ncontainer.RegisterType<IService, CustomerService>("other name");\n\nvar instance = (IService)container.Resolve(typeof(IMyService), "other name");\n
\n

Note

\n

If the target class or object specifies any dependencies of its own, using constructor, property, or method call injection attributes, the instance returned will have these dependent objects injected automatically.

\n

By default, the RegisterType method registers a type with a transient lifetime, which means that the container will not hold onto a reference to the objects it creates when you call the Resolve method. Each time you call one of these methods, the container generates a new instance of the specified or mapped type. However, you can use lifetime managers to control the creation, lifetime, and disposal of objects if required.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/type.md","depot_name":".","document_id":"828ddeb7-d1d0-42ca-3b7b-92e045095af2","document_version_independent_id":"00b7411d-8720-a67b-d3ce-17be06f6dca6","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Resolution/type.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/type.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Resolution/type.md","rawTitle":"

Resolving an Object by Type

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Resolution By Type","uid":"Tutorial.Resolution.Type","updated_at":"2019-04-30 12:00 AM","wordCount":750},{"url":"/tutorials/composition/selection/constructor/","path":"tutorials/composition/selection/constructor/index.html","source_path":"tutorials/Composition/Selection/constructor.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/selection/constructor/","conceptual":"\n

Proper selection of the constructor used for type instantiation is one of the most important aspects of the container operation. When creating an object, the container uses one of the following algorithms to select a constructor it will be using to initialize the object:

\n\n

Automatic Constructor Selection

\n

Automatic constructor selection is performed if no other information is available on how to create a Type. Unity uses dynamic, real time algorithm to discover and select a constructor.

\n

The Unity container will try to execute the most complex constructor it can provide with appropriate dependencies. In other words, if the container can resolve and/or inject all parameters of the constructor, it will be selected.

\n

Creating Build Pipeline

\n

Selection process takes place during the first resolution of a Type contract. Unity container employs lazy resolution strategy. It will defer pipeline creation until the contract (RegistrationType and Name) is requested.

\n

The lazy approach allows registrations to proceed at random order and do not require dependencies to be registered before dependents. As long as all of these are available at the time of resolution Unity does not care in what order they were registered.

\n

Constructor Selection Steps

\n

One of the first steps, when creating a pipeline, is a constructor selection. Constructors are selected in the following order:

\n
    \n
  • If present, use registered Injection Constructor
  • \n
  • If present, annotated with an attribute
  • \n
  • Automatically select constructor\n
      \n
    • Get all accessible constructors
    • \n
    • Process constructors in ascending order from most complex to the default\n
        \n
      • Filter out restricted constructors
      • \n
      • Loop through parameters and check if\n
          \n
        • Is primitive\n
            \n
          • Is registered with the container
          • \n
          • Has default value
          • \n
          \n
        • \n
        • Is resolvable type
        • \n
        • Is registered with container
        • \n
        \n
      • \n
      • Select the first constructor the container can create
      • \n
      \n
    • \n
    \n
  • \n
\n

The Unity container will select the first successful match and use it as a selection.

\n
\n
WARNING
\n

When more than one constructor could be matched at the same time, the order and constructor selection can not be guaranteed.

\n
\n

During normal operation the container does not perform validation.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will perform a selection validation and will throw an exception, reporting ambiguous constructors, if more than one constructor can be successfully selected with current configuration.

\n
\n

If no constructor could be selected, the container will throw an exception.

\n

Pipeline retention

\n

Once the pipeline is created, it will be used to satisfy all subsequent requests for that contract. If you need to update or rebuild the pipeline, the contract has to be re-registered.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/constructor.md","depot_name":".","document_id":"aea11f2a-6c27-f320-3e46-c7b606c05557","document_version_independent_id":"cd59209a-97e5-ae23-fabe-a9a5b024c9a4","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Selection/constructor.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Selection/constructor.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Automatic Constructor Selection","uid":"Tutorial.Selection.Constructor","updated_at":"2019-04-30 12:00 AM","wordCount":490},{"url":"/tutorials/composition/selection/selection/","path":"tutorials/composition/selection/selection/index.html","source_path":"tutorials/Composition/Selection/selection.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/composition/selection/selection/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/selection.md","depot_name":".","document_id":"773829b3-06bb-7923-fe4b-0867d098e405","document_version_independent_id":"ad545286-383e-94cb-a269-1c679ef100bf","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Selection/selection.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/selection.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Selection/selection.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Selection","uid":"Tutorial.Resolution.Selection","updated_at":"2019-04-30 12:00 AM","wordCount":0},{"url":"/tutorials/definitions/","path":"tutorials/definitions/index.html","source_path":"tutorials/definitions.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/definitions/","conceptual":"\n

Generics terminology

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/definitions.md","depot_name":".","document_id":"04c5b240-961a-772a-7817-54e0bccae982","document_version_independent_id":"fa33c497-8117-ccce-36b1-aa3aa1d9adca","gitcommit":"https://github.com/unitycontainer/documentation/blob/a13df4070c33d6413bfa4faeecf4416ffd5f4330/tutorials/definitions.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/definitions.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/definitions.md","rawTitle":"

Terms and Definitions

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Terms and Definitions","uid":"Tutorial.Terms","updated_at":"2019-03-14 02:57 AM","wordCount":2},{"url":"/tutorials/extensions/activation/","path":"tutorials/extensions/activation/index.html","source_path":"tutorials/Extensions/activation.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/extensions/activation/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/activation.md","depot_name":".","document_id":"e2640f64-1956-be9e-d1a7-e34a5362fb8a","document_version_independent_id":"afd125e2-8bf4-f155-47be-a8e5a74167ea","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/activation.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/activation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/activation.md","rawTitle":"

Force Activation Extension

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Force Activation Extension","uid":"Tutorial.Extension.Activation","updated_at":"2019-04-05 01:56 AM","wordCount":0},{"url":"/tutorials/extensions/compilation/","path":"tutorials/extensions/compilation/index.html","source_path":"tutorials/Extensions/compilation.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/extensions/compilation/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/compilation.md","depot_name":".","document_id":"48ad6cfd-57bb-860b-c35c-bcb80309ad1f","document_version_independent_id":"b9e3cc08-5d2e-b6ff-1c10-1d5b98a5cb54","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/compilation.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/compilation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/compilation.md","rawTitle":"

Force Compilation Extension

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Force Compilation Extension","uid":"Tutorial.Extension.Compilation","updated_at":"2019-04-05 01:56 AM","wordCount":0},{"url":"/tutorials/extensions/diagnostic/","path":"tutorials/extensions/diagnostic/index.html","source_path":"tutorials/Extensions/diagnostic.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/extensions/diagnostic/","conceptual":"\n

Creating and configuring Unity container is a complicated process. A lot of things could go wrong and finding where it was misconfigured could be rather involved. To simplify debugging and to help fix issues Unity offers Diagnostic extension.

\n

Performance considerations

\n

The Unity container uses reflection for most of its operations. It gathers information about types, creates pipelines to create these types, and verifies everything all based on reflected data. Because of that it is rather resource extensive and relatively slow.

\n

To optimize performance, Unity engine does not do any runtime validation and only performs absolute minimum checks, just enough to be able to run. As result a lot of irregular conditions might go unnoticed. To remedy this, the container exposes Diagnostic extension which does thorough examination of all registration data and throws exceptions on any irregularities.

\n

Unity Diagnostic Extension

\n

Diagnostic extension, among other things, verifies the following conditions:

\n
    \n
  • Cyclical references (The famous Stack Overflow Exception)
  • \n
  • Validity of provided Injection Members
  • \n
  • Improper referencing to itself
  • \n
  • Invalid parameters in constructors and invoked methods
  • \n
\n

Enabling Diagnostics

\n

The extension could be enabled in few different ways:

\n

Add Extension

\n

The most basic case is when extension is added via AddExtension(...) call. It works with either regular or generic methods.

\n
var container = new UnityContainer()\n                .AddExtension(new Diagnostic());\n
\n

or

\n
var container = new UnityContainer()\n                .AddExtension<Diagnostic>();\n
\n

The first method, one with AddExtension(new Diagnostic()) is a bit faster.

\n

Using extension method

\n

For convenience, Unity container exposes EnableDiagnostic() extension method. This method is equal to adding extension to the container.

\n
var container = new UnityContainer()\n                    .EnableDiagnostic();\n
\n

Enabling extension only in Debug

\n

The container provides conditional extension EnableDebugDiagnostic(). This method will only enable diagnostics in DEBUG mode. In this example

\n
var container = new UnityContainer();\ncontainer.EnableDebugDiagnostic();\n
\n

the extension is enabled only if calling method is compiled in Debug configuration.

\n
\n
IMPORTANT
\n

Extension methods will not work on IUnityContainer interface. It is only available on the UnityContainer itself.

\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/diagnostic.md","depot_name":".","document_id":"b64b01be-61e5-4cb2-e0ba-303da7dd561a","document_version_independent_id":"866e42fd-367d-52c3-d247-d1cd88951345","gitcommit":"https://github.com/unitycontainer/documentation/blob/8308246108d439f29e11e853c6daa702c58ba726/tutorials/Extensions/diagnostic.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/diagnostic.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/diagnostic.md","rawTitle":"

Diagnostic

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Diagnostic Extension","uid":"Tutorial.Extension.Diagnostic","updated_at":"2019-04-05 01:59 AM","wordCount":315},{"url":"/tutorials/extensions/extensions/","path":"tutorials/extensions/extensions/index.html","source_path":"tutorials/Extensions/extensions.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/extensions/extensions/","conceptual":"\n

Unity container comes prepackaged with several extensions:

\n
    \n
  • Diagnostic Extension
  • \n
  • Legacy Constructor Selector Extension
  • \n
  • Force Compilation Extension
  • \n
  • Force Activation Extension
  • \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/extensions.md","depot_name":".","document_id":"175515ab-3a5e-0514-8749-ed0171ff6bd0","document_version_independent_id":"af9fca54-a600-b1ab-4b7a-4cdde5a31dae","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/extensions.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/extensions.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/extensions.md","rawTitle":"

Unity Extensions

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Extensions","uid":"Tutorial.Extensions","updated_at":"2019-04-05 01:56 AM","wordCount":19},{"url":"/tutorials/extensions/legacy/","path":"tutorials/extensions/legacy/index.html","source_path":"tutorials/Extensions/legacy.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/extensions/legacy/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/legacy.md","depot_name":".","document_id":"562b10a8-2c05-2a01-04d6-0be4b44f6361","document_version_independent_id":"67ecddf7-6f6f-c595-4348-6f44de20a0a3","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/legacy.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/legacy.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/legacy.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Legacy Extension","uid":"Tutorial.Extension.Legacy","updated_at":"2019-04-05 01:56 AM","wordCount":0},{"url":"/tutorials/hierarchies/","path":"tutorials/hierarchies/index.html","source_path":"tutorials/hierarchies.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/hierarchies/","conceptual":"\n

Unity container provides a way to create child containers (other systems refer to it as resolution scopes) and allows building sophisticated scope trees of registrations. There are just a few simple rules to follow when dealing with container hierarchies:

\n
    \n
  • Types registered in predecessor containers always available in descendant containers. This is a very simple concept, each registration is like a public virtual declaration in cs types. Every descendant inherits it and can use at will.

    \n
  • \n
  • Types registered in descendant containers override the same registration of predecessors. Following the same analogy with public virtual declarations, each override registration installs its own declaration and hides the one in predecessor containers.

    \n
  • \n
\n

Using Container Hierarchies

\n

Unity supports nested containers, allowing you to build container hierarchies. Nesting containers enables you to control the scope and lifetime of singleton objects, and register different mappings for specific types. This topic contains the following sections that describe how you can create container hierarchies and use them in your applications:

\n
    \n
  • Constructing and Disposing Unity Containers
  • \n
  • Controlling Object Scope and Lifetime
  • \n
  • Overriding registrations
  • \n
\n

Constructing and Disposing Unity Containers

\n

The following methods enable you to create a new default UnityContainer, create a child container that has a specified UnityContainer as its parent, and dispose an existing container.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MethodDescription
new UnityContainer()Creates a root UnityContainer. Returns a reference to the new container.
CreateChildContainer()Creates a new nested UnityContainer as a child of the current container. The current container first applies its own settings, and then it checks the parent for additional settings. Returns a reference to the new container.
Dispose()Disposes this container instance and any child containers. Also disposes any registered object instances whose lifetimes are managed by the container.
\n

Controlling Object Scope and Lifetime

\n

When the container creates singleton objects, it manages the lifetime of these singletons. They remain in scope until you (or the garbage collector) dispose the container. At this point, it disposes the registered singleton instances it contains. In addition, if you dispose the parent container in a nested container hierarchy, it automatically disposes all child containers and the registered singletons they contain.

\n

Therefore, if you require two separate sets of such objects that must have different lifetimes, you can use hierarchical containers to store and manage each set. Register instances that you want to be able to dispose separately in one or more child containers that you can dispose without disposing the parent container.

\n

The following code demonstrates the use of a child container to manage the lifetime of specific singleton instances while maintaining the singleton instances in the parent container.

\n
\n// Create parent container\nIUnityContainer parentCtr = new UnityContainer();\n\n// Register type in parent container\nparentCtr.RegisterType<MyParentObject>(TypeLifetime.PerContainer);\n\n// Create nested child container in parent container\nIUnityContainer childCtr = parentCtr.CreateChildContainer();\n\n// Register type in child container\nchildCtr.RegisterType<MyChildObject>(TypeLifetime.PerContainer);\n\n// Create instance of type stored in parent container\nMyParentObject parentObj = parentCtr.Resolve<MyParentObject>();\n\n// Create instance of type stored in child container\nMyChildObject childObj = childCtr.Resolve<MyChildObject>();\n\n// ... can use both generated objects here ...\n\n// Dispose child container\nchildCtr.Dispose();\n\n// ... can use only object in parent container here ...\n\n// Dispose parent container\nparentCtr.Dispose();\n
\n

Overriding registrations

\n

You can use nested containers when you have slightly different dependency injection requirements for specific objects but want to provide a fallback facility for objects that implement a specific interface or are of a specific type. For example, you may have a general requirement for objects that implement the IMyObject interface to map to the type MyStandardObject. However, in specific parts of the application code, you may want the IMyObject interface to map to the type MySpecialObject.

\n

In this case, you can register the general mapping in the parent container and register the specific case in a child container. Then, when you want to obtain an instance of the object, you call the Resolve method on the appropriate container. If you call the method on the child container, it returns an object of type MySpecialObject. If you call the method on the parent container, it returns an object of type MyStandardObject.

\n

However, the advantage with nested containers is that, if the child container cannot locate a mapping for the requested interface or type, it passes the request to its parent container and onward through the hierarchy until it reaches the root or base container. Therefore, for objects not mapped in the child container, the mapping in the parent container (or in an ancestor container where there are more than two levels in the hierarchy) defines the object type returned.

\n

The following code shows how you can implement the preceding scenario.

\n
// Create parent container\nIUnityContainer parentCtr = new UnityContainer();\n\n// Register two mappings for types in parent container\nparentCtr.RegisterType<IMyObject, MyStandardObject>();\nparentCtr.RegisterType<IMyOtherObject, MyOtherObject>();\n\n// Create nested child container in parent container\nIUnityContainer childCtr = parentCtr.CreateChildContainer();\n\n// Register mapping for specific type in child container\nchildCtr.RegisterType<IMyObject, MySpecialObject>();\n\n// Now retrieve instances of the mapped objects using the child container.\n// Using the interface as the type for the returned objects means that it\n// does not matter which container returns the actual object.\n\n// This code returns an object of type MySpecialObject using the mapping\n// registered in the child container:\nIMyObject specialObject = childCtr.Resolve<IMyObject>();\n\n// This code returns an object of type MyOtherObject using the mapping\n// registered in the parent container because there is no mapping in \n// the child container for this type:\nIMyOtherObject otherObject = childCtr.Resolve<IMyOtherObject>();\n\n// Now retrieve instance of the standard object using the parent container.\n// This code returns an object of type MyStandardObject using the mapping\n// registered in the parent container:\nIMyObject standardObject = parentCtr.Resolve<IMyObject>();\n\n// Dispose parent container and child container\nparentCtr.Dispose();\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/hierarchies.md","depot_name":".","document_id":"f2ce8356-f147-18ea-608e-d435aba30a24","document_version_independent_id":"3059ba46-3fde-dc5c-c040-4e7e672e2330","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/tutorials/hierarchies.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/hierarchies.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/hierarchies.md","rawTitle":"

Container Hierarchies

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Container Hierarchy","uid":"Tutorial.Container.Hierarchy","updated_at":"2019-03-16 08:42 PM","wordCount":935},{"url":"/tutorials/lifetime/container/","path":"tutorials/lifetime/container/index.html","source_path":"tutorials/lifetime/container.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/container/","conceptual":"\n

Per Container lifetime allows a registration of an existing or resolved object as a scoped singleton in the container it was created or registered. In other words this instance is unique within the container it war registered with. Child or parent containers could have their own instances registered for the same contract.

\n

Unity returns the same instance each time the Resolve method is called or when the dependency mechanism injects the instance into other classes.

\n

The Lifetime Manager

\n

Per container lifetime is controlled by ContainerControlledLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects registered with a particular container.

\n

Registration

\n

Per container lifetime is supported by all registration types

\n

Example

\n

To create a Type registration with per container lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerContainer);\n
\n

to register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerContainer);\n
\n

or to register an instance:

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.PerContainer);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime, FactoryLifetime, and InstanceLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container.md","depot_name":".","document_id":"f944002f-f282-161d-59c3-dc0158b81c38","document_version_independent_id":"50f57fc6-d6aa-c252-3fee-3489768c2729","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/container.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/container.md","rawTitle":"

Per Container Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Per Container Lifetime","uid":"Tutorial.Lifetime.Container","updated_at":"2019-03-23 02:03 AM","wordCount":179},{"url":"/tutorials/lifetime/container_transient/","path":"tutorials/lifetime/container_transient/index.html","source_path":"tutorials/lifetime/container_transient.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/container_transient/","conceptual":"\n

This lifetime is similar to Transient Lifetime with exception how the container holds references to created objects.

\n

On each call to the Resolve<T>() method a container will create a new objects. If the objects implements IDisposable, the container will hold a reference to the interface and will dispose the object when the container goes out of scope.

\n

This lifetime is particularly useful in session based designs with child containers associated with the session.

\n

The Lifetime Manager

\n

Per container transient lifetime is controlled by ContainerControlledTransientManager type. This lifetime manager creates transient objects and holds reference to disposable instance and disposes these when container goes out of scope.

\n

Registration

\n

Per container transient lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per container transient lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerContainerTransient);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerContainerTransient);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container_transient.md","depot_name":".","document_id":"29a2ea99-b616-e72c-4e44-348a0626f001","document_version_independent_id":"65e82dd5-d73d-c902-ecfd-b6d9899f7e36","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/container_transient.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container_transient.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/container_transient.md","rawTitle":"

Container Transient Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Container Lifetime","uid":"Tutorial.Lifetime.Container.Transient","updated_at":"2019-03-23 02:03 AM","wordCount":184},{"url":"/tutorials/lifetime/disposal/","path":"tutorials/lifetime/disposal/index.html","source_path":"tutorials/lifetime/disposal.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/disposal/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/disposal.md","depot_name":".","document_id":"2b14df58-74ce-1a15-ad4b-1a2d4d6cbeef","document_version_independent_id":"c0f3331c-2ddb-e9d7-fca1-2b6545a81a01","gitcommit":"https://github.com/unitycontainer/documentation/blob/5540f1bb5b8cc106e4f2c8566afa78046a94691a/tutorials/lifetime/disposal.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/disposal.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/disposal.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","updated_at":"2019-02-22 04:26 PM","wordCount":0},{"url":"/tutorials/lifetime/external/","path":"tutorials/lifetime/external/index.html","source_path":"tutorials/lifetime/external.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/external/","conceptual":"\n

This lifetime allows you to register externally created objects with the container to enable them to participate in dependency injection process. Unity maintains only a weak reference to the instances it registers.

\n

Since the container does not maintain a strong reference to the object, the garbage collector can dispose of the objects if no other code is keeping it alive.

\n

The Lifetime Manager

\n

External lifetime is controlled by ExternallyControlledLifetimeManager type and provides basic support for externally managed objects.

\n

Registration

\n

External lifetime is only supported by Instance registrations.

\n

External lifetime is similar to Per Container Lifetime. It is held at the same container it is registered with and could be accessed and overridden in child container. Registrations with external lifetime override singletons with the same contract.

\n

Example

\n

To create a registration with external lifetime:

\n
var instance = new Service();\n...\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.External);\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/external.md","depot_name":".","document_id":"625147b9-ab0d-c4e5-a0f3-f578ab38848b","document_version_independent_id":"46cdda77-89a2-945f-304d-ee0461f7b5a5","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/external.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/external.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/external.md","rawTitle":"

External Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"External Lifetime","uid":"Tutorial.Lifetime.External","updated_at":"2019-03-23 02:03 AM","wordCount":162},{"url":"/tutorials/lifetime/hierarchical/","path":"tutorials/lifetime/hierarchical/index.html","source_path":"tutorials/lifetime/hierarchical.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/hierarchical/","conceptual":"\n

The Unity container allows creating hierarchies of child containers. This lifetime creates local singleton for each level of the hierarchy. So, when you resolve a type and this container does not have an instance of that type, the container will create new instance. Next time the type is resolved the same instance will be returned.

\n

If a child container is created and requested to resolve the type, the child container will create a new instance and store it for subsequent resolutions. Next time the child container requests to resolve the type, it will return the stored instance.

\n

If you have multiple children, each will resolve its own instance.

\n

The Lifetime Manager

\n

Hierarchical lifetime is controlled by HierarchicalLifetimeManager type. It forces each child container to resolve its own instance of the object and does not share one with the parent or child containers.

\n

Registration

\n

Hierarchical lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with hierarchical lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.Hierarchical);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.Hierarchical);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/hierarchical.md","depot_name":".","document_id":"ed59d502-58d2-b13f-0561-833ca822dd15","document_version_independent_id":"4a92b4ec-c719-f2a6-f0dc-cf933cc22b5d","gitcommit":"https://github.com/unitycontainer/documentation/blob/3fb58b282a3dc13782e99f27f44902dcc5ab6051/tutorials/lifetime/hierarchical.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/hierarchical.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/hierarchical.md","rawTitle":"

Hierarchical Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Hierarchical Lifetime","uid":"Tutorial.Lifetime.Hierarchical","updated_at":"2019-08-27 08:54 PM","wordCount":216},{"url":"/tutorials/lifetime/lifetime/","path":"tutorials/lifetime/lifetime/index.html","source_path":"tutorials/lifetime/lifetime.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/lifetime/","conceptual":"\n

The Unity container manages the lifetime of objects based on a Lifetime Manager you specify when you register the type.

\n

The default behavior for the container, if no lifetime is registered, to use a Transient Lifetime. It creates a new instance of the requested type each time Resolve method is called or when the dependency mechanism injects instances into other classes. The container does not store any references to the object.

\n

Unity uses specific types that inherit from the LifetimeManager base class (collectively referred to as lifetime managers) to control how it stores references to object instances and how the container disposes of these instances.

\n

When you register an existing object using the RegisterInstance method, the default behavior is for the container to take over management of the lifetime of the object you pass to this method using the Per Container Lifetime. This means that container maintains strong reference to the object and at the end of the container lifetime, the existing object is disposed.

\n

How registering lifetime works

\n

When type is registered with a lifetime manager, the creation and life cycle of the created instances is controlled according to that lifetime.

\n

When a container is requested to produce an instance of the type, it first checks if a lifetime manager is associated with it. If not, or if it is a transient manager, the container simply creates the instance and return it to the caller.

\n

If registration contains a lifetime manager, the container tries to get the value from that manager. If the manager has nothing stored in it, the container created an instance. But before it returns the instance to the caller it adds it to the lifetime manager for later use.

\n

Next time the type is requested, the container gets the value previously stored in the manager, if available, and returns it to the caller.

\n

Each lifetime manager has its own criteria how to store and retrieve object instances. Some only store unique instances in a container, others store unique instances per thread or session. Each algorithm serves particular purpose.

\n

Built-In Lifetimes

\n

The Unity container implements several lifetime managers that you can use directly in your code. The range covers most common use cases and scenarios. Unity includes the following lifetime implementations:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/lifetime.md","depot_name":".","document_id":"5967a720-f54b-9740-a35b-9261249cd593","document_version_independent_id":"508ed49a-b285-2772-22f3-504f140d52cc","gitcommit":"https://github.com/unitycontainer/documentation/blob/c070d39a1c3e31474fffb345891d82d0095e5b2e/tutorials/lifetime/lifetime.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/lifetime.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/lifetime.md","rawTitle":"

Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Lifetime Management","uid":"Tutorial.Lifetime","updated_at":"2019-03-23 02:38 AM","wordCount":395},{"url":"/tutorials/lifetime/managers/","path":"tutorials/lifetime/managers/index.html","source_path":"tutorials/lifetime/managers.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/managers/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/managers.md","depot_name":".","document_id":"f8559604-1b16-b232-33ff-2f49cb407425","document_version_independent_id":"bc1bd747-5468-e6d2-c466-1c22570f613b","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/managers.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/managers.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/managers.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Lifetime Managers","uid":"Tutorial.Lifetime.Managers","updated_at":"2019-03-23 02:03 AM","wordCount":20},{"url":"/tutorials/lifetime/resolve/","path":"tutorials/lifetime/resolve/index.html","source_path":"tutorials/lifetime/resolve.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/resolve/","conceptual":"\n

This lifetime keeps a reference to an instance only for the duration of one resolution call. This type of lifetime is useful when you need to pass the same instance of the dependency to a different nodes of the resolution graph. Consider this scenario:

\n
\nclass a {}\n\nclass b\n{\n    b(a arg)\n    {...}\n}\n\nclass c\n{\n    c(a arg1, b arg2)\n    {...}\n}\n\n
\n

When you resolve type c, it depends on type b and type a. Type b, in turn, also depends on type a, and both types, c and b, require a to be the same instance.

\n

If type a is a singleton, the logic is easy. But if you require each instance of c to have a unique a, you could use per resolve lifetime. The instance of a will act as a singleton only during that one resolution. Next call to resolve the dependent type will create a new object.

\n

In the case of recursion, the singleton behavior is still applies and prevents circular dependency.

\n

The Lifetime Manager

\n

Per resolve lifetime is controlled by PerResolveLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects on a per-resolve basis.

\n

Registration

\n

Per resolve lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per resolve lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerResolve);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerResolve);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/resolve.md","depot_name":".","document_id":"0d58f2b4-f70d-efe0-5963-be66ccaab8f2","document_version_independent_id":"a1db04ca-fb22-ecd3-2542-e1a1f9d0cc0b","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a3bce3e65127863d30af8960c9eb3393e9181c1/tutorials/lifetime/resolve.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/resolve.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/resolve.md","rawTitle":"

Per Resolve Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Per Resolve Lifetime","uid":"Tutorial.Lifetime.Resolve","updated_at":"2019-03-24 07:28 PM","wordCount":269},{"url":"/tutorials/lifetime/singleton/","path":"tutorials/lifetime/singleton/index.html","source_path":"tutorials/lifetime/singleton.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/singleton/","conceptual":"\n

Singleton lifetime creates globally unique singleton. Any Unity container tree (parent and all the children) is guaranteed to have only one global singleton for the registered type.

\n

The Lifetime Manager

\n

The singleton lifetime is controlled by SingletonLifetimeManager type.

\n

Registration

\n

Registering a type with singleton lifetime always places the registration at the root of the container tree and makes it globally available for all the children of that container. It does not matter if registration takes places at the root of child container the destination is always the root node.

\n

Repeating the registration on any of the child nodes with singleton lifetime will always override the root registration.

\n

Singleton lifetime is supported by all registration types.

\n

Example

\n

To create a Type registration with singleton lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.Singleton);\n
\n

to register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.Singleton);\n
\n

or to register an instance:

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.Singleton);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime, FactoryLifetime, and InstanceLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/singleton.md","depot_name":".","document_id":"a3491109-364d-05db-d4a5-f61fc2ce069e","document_version_independent_id":"39b0fe65-5ec7-100d-e2a6-897d10093ccb","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a3bce3e65127863d30af8960c9eb3393e9181c1/tutorials/lifetime/singleton.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/singleton.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/singleton.md","rawTitle":"

Singleton Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Singleton Lifetime","uid":"Tutorial.Lifetime.Singleton","updated_at":"2019-03-24 07:28 PM","wordCount":182},{"url":"/tutorials/lifetime/thread/","path":"tutorials/lifetime/thread/index.html","source_path":"tutorials/lifetime/thread.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/thread/","conceptual":"\n

Per thread lifetime means a new instance of the registered Type will be created once per each thread. In other words, if a Resolve<T>() method is called on a thread the first time, it will return a new object. Each subsequent call to Resolve<T>(), or when the dependency mechanism injects instances of the type into other classes on the same thread, the container will return the same object.

\n

The Lifetime Manager

\n

Per thread lifetime is controlled by PerThreadLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects on a per-thread basis.

\n

Registration

\n

Per thread lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per thread lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerThread);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerThread);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/thread.md","depot_name":".","document_id":"ab2df0fc-9e21-ded4-29f6-963493984600","document_version_independent_id":"572b5b1f-4bc4-bd1e-0e0a-4b89f5fe2529","gitcommit":"https://github.com/unitycontainer/documentation/blob/bb6dc876c93ae8f48e84e24ed81ea6122119f554/tutorials/lifetime/thread.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/thread.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/thread.md","rawTitle":"

Per Thread Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Per Thread Lifetime","uid":"Tutorial.Lifetime.Thread","updated_at":"2019-03-23 12:23 AM","wordCount":169},{"url":"/tutorials/lifetime/transient/","path":"tutorials/lifetime/transient/index.html","source_path":"tutorials/lifetime/transient.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/lifetime/transient/","conceptual":"\n

Transient lifetime is a default lifetime of the Unity container. As the name implies it lasts very short period of time, actually, no time at all. In the Unity container terms, having transient lifetime is the same as having no lifetime manager at all.

\n

For this lifetime manager Unity creates and returns a new instance of the requested type for each call to the Resolve method.

\n

The Lifetime Manager

\n

The transient lifetime is controlled by TransientLifetimeManager. This lifetime manager is used by default for all types registered using the RegisterType method where no specific manager has been provided.

\n

Registration

\n

When registering a transient Type it is recommended to not pass an instance of TransientLifetimeManager to the registration, but allow Unity to create it explicitly.

\n

Example

\n
RegisterType<Foo>();\nRegisterType<IService, Service>();\n
\n

In this example a Type Foo and a mapping from IService to Service both registered with transient lifetime. So every call to Resolve<Foo>() or Resolve<IService>() will create a new object instance.

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/transient.md","depot_name":".","document_id":"06238d76-3b70-618a-912e-a9c1962b98ac","document_version_independent_id":"f0f53112-6e30-292d-4b71-9573e0cded31","gitcommit":"https://github.com/unitycontainer/documentation/blob/c71e919e39ea3263b8425ee4c43a30d223d6f726/tutorials/lifetime/transient.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/transient.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/transient.md","rawTitle":"

Transient Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Transient Lifetime","uid":"Tutorial.Lifetime.Transient","updated_at":"2019-03-22 11:43 PM","wordCount":181},{"url":"/tutorials/registration/factory/","path":"tutorials/registration/factory/index.html","source_path":"tutorials/registration/factory.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/factory/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/factory.md","depot_name":".","document_id":"f0604d33-6d6b-f783-d6b5-11384867111b","document_version_independent_id":"2cdbbcb1-87c4-a276-7ac0-13258465cf06","gitcommit":"https://github.com/unitycontainer/documentation/blob/fcf3dc0a8e1438e5b0d980be1f7a8ea83ed2efdc/tutorials/registration/factory.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/factory.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/factory.md","rawTitle":"

Factory Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Factory Registration","uid":"Tutorial.Registration.Factory","updated_at":"2019-03-06 11:21 PM","wordCount":0},{"url":"/tutorials/registration/instance/","path":"tutorials/registration/instance/index.html","source_path":"tutorials/registration/instance.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/instance/","conceptual":"\n

Registering instances is useful if you already have an instance of an object that you have previously created and want Unity to manage its lifetime, or if you want Unity to inject that object into other objects that it is resolving.

\n

From container's point of view instance registration is in every way similar to type registration, except that it does not need to create the instance on the first Resolve request. It simply gets the object from lifetime manager and returns it as requested. The LifetimeManager controls the lifetime of the object and disposes it when appropriate.

\n

Registration of an Existing Object Instances

\n

The RegisterInstance method registers an existing instance with the container. You specify the instance type and optional lifetime in the parameter list. The container will return the specified existing instance for the duration of the specified lifetime. Unity container offers several overloads to simplify registration syntax. The simplest instance registration does not require any additional parameters other than instance itself:

\n
var instance = new Service();\n\ncontainer.RegisterInstance(instance);\n
\n

Resolving type Service like this container.Resolve<Service>() will return an instance of the Service object we registered.

\n

Metadata

\n

Instance registration, as any other registration type, supports adding a registration Name. Doing so lets you register multiple instance of the same Type for later retrieval as a collection. Using overload you can write it like this:

\n
container.RegisterInstance("Some Name", instance);\n
\n

Type mapping

\n

Any instance can also be registered as any of the ancestral types or any of the interfaces it implements effectively creating a mapping between these types.

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance);\ncontainer.RegisterInstance<IService>("Some Name", instance);\nor\ncontainer.RegisterInstance(typeof(IService), instance)\ncontainer.RegisterInstance(typeof(IService), "xyz", instance)\n
\n

In this example Unity creates two registrations of type IService. When either is resolved it returns the instance of the Service object we registered with container. For more information see Type Mapping

\n

Lifetime

\n

Due to the fact that container does not create these instances, the instance registration only supports limited number of compatible lifetimes:

\n

Per Container

\n

By default Unity uses Per Container lifetime manager when no manager specified explicitly. So all these examples above will be registered with container scope. Unity will keep these instances referenced and alive until the container is alive. Although it is not necessary to provide container controlled lifetime manager you can still write it like this:

\n
container.RegisterInstance("Some Name", instance, InstanceLifetime.PerContainer);\ncontainer.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.PerContainer);\n
\n

Singleton

\n

Instances can be registered as global singletons by using Singleton lifetime manager:

\n
container.RegisterInstance("Some Name", instance, InstanceLifetime.Singleton);\ncontainer.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.Singleton);\n
\n

These instances will be kept alive until root container is disposed.

\n

External

\n

If Unity is not supposed to control lifetime of the object the External lifetime manager is used:

\n
container.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.External);\n
\n

External lifetime manager is also useful when same instance is registered via multiple interfaces. In this case only one registration should use Per Container or Singleton manager and the rest should be registered with External lifetime manager. This way, when object is disposed, it is not disposed multiple times:

\n
container.RegisterInstance(instance, InstanceLifetime.Singleton);\n\ncontainer.RegisterInstance<IService>(        instance, InstanceLifetime.External);\ncontainer.RegisterInstance<IService>("Name", instance, InstanceLifetime.External);\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/instance.md","depot_name":".","document_id":"2db4d9db-4837-9463-3cc7-45a8a5227018","document_version_independent_id":"9ecb4aa2-4bbf-0201-0504-07b44db0e1ce","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/instance.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/instance.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/instance.md","rawTitle":"

Instance Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Instance Registration","uid":"Tutorial.Registration.Instance","updated_at":"2019-03-07 05:22 AM","wordCount":499},{"url":"/tutorials/registration/metadata/","path":"tutorials/registration/metadata/index.html","source_path":"tutorials/registration/metadata.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/metadata/","conceptual":"\n

During registration Unity relies on information you provide to properly register types, instances, and factories. This is a description of metadata you could provide to properly declare how the Type should be registered and built:

\n

Registered Type

\n

A Type that will be requested during resolution is called Registered Type. In the example below SomeType would be a registered type.

\n
container.RegisterType<SomeType>();\n...\nvar value = container.Resolve<SomeType>();\n
\n

Different container authors call this type by different names, FromType, ServiceType, etc. The key point to remember is that this is the Type container will be referencing in the internal registry and will be looking for when executing the resolve.

\n

Name

\n

Each registration must be unique within the scope on a container it is registered with. A registration is identified by two pieces of information: Registered Type and Name.\nAdding the name to registration allows multiple 'instances' of the same type to be registered with the container.

\n

For example, if you register the same service with no name multiple times, each subsequent registration will override the last because in each case you are registering the same type IService with the same name null:

\n
container.RegisterType<IService, Service1>();\ncontainer.RegisterType<IService, Service2>();\ncontainer.RegisterType<IService, Service3>();\n\nvar enumeration = container.Resolve<IEnumerable<IService>>();\nvar count = enumeration.Count();\n
\n

The value of variable count will be 1.

\n

Adding unique names to registrations makes each unique:

\n
container.RegisterType<IService, Service1>("1");\ncontainer.RegisterType<IService, Service2>("2");\ncontainer.RegisterType<IService, Service3>("3");\n\nvar enumeration = container.Resolve<IEnumerable<IService>>();\nvar count = enumeration.Count();\n
\n

In this example the value of variable count will be 3.

\n

Mapped To Type

\n

Sometimes it is also called ToType, ImplementationType, and etc. It describes the type Unity should use to create the instance. Mapped To Type must be descendant of, or it should implement the Registered Type. In other words, it must be assignable to a variable of Registered Type.

\n

This registration member creates a mapping between service and implementation types. In the following example IService is mapped to Service and when Unity container is asked to resolve IService it will, in turn, create an instance of type Service and return it as interface IService.

\n
container.RegisterType<IService, Service>();\n\nvar result = container.Resolve<IService>();\n\nAssert(typeof(Service) == result.GetType())\n
\n

For more information see Type Mapping.

\n

Lifetime Manager

\n

This member holds a reference to a lifetime manager that Unity will be using to manage instance(s) of this type. For more information see Lifetime Management.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/metadata.md","depot_name":".","document_id":"fc6c3f44-66b3-f55d-334e-840d9ac78cb1","document_version_independent_id":"f13bf8e3-6b83-d673-6b1f-cc55aa6cff6a","gitcommit":"https://github.com/unitycontainer/documentation/blob/2a5f6d8a2ee72d62253de6ab40494c4d39e00011/tutorials/registration/metadata.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/metadata.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/metadata.md","rawTitle":"

Registration Metadata

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Registration Metadata","uid":"Tutorial.Registration.Metadata","updated_at":"2019-05-15 06:34 PM","wordCount":380},{"url":"/tutorials/registration/registration/","path":"tutorials/registration/registration/index.html","source_path":"tutorials/registration/registration.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/registration/","conceptual":"\n

Unity does not require Type to be registered to resolve it.

\n

Any concrete, constructable Type could be resolved by Unity without any prior preparation. It will even create and supply parameters if required. In other words, if you can create a Type with new operator:

\n
var value = new SomeClass(new SomeOtherClass());\n
\n

you can resolve it from Unity:

\n
var value = container.Resolve<SomeClass>();\n
\n

Minimum Registration Requirements

\n

A lot of times, if type does not require any custom steps, it is faster to resolve Type from the container if it is not registered. You should only register a Type if one of the following is required:

\n
    \n
  • Lifetime policy other than transient
  • \n
  • Nondefault constructor should be selected
  • \n
  • Properties or fields not marked with appropriate attributes should be injected
  • \n
  • Method should be called during initialization on the created object
  • \n
  • Mapping between service and implementation types
  • \n
\n

What is a Registration and how it works

\n

Registration is how you control Unity to do it 'Your' way. When you register a Type, you are instructing Unity to create and initialize an instance of that Type in a very particular way. You also instruct Unity how to deal with the crated instance during its lifetime.

\n

Once registration is complete, Unity creates a blueprint of the type factory where it stores implementation details (name, to and from types, etc.), information about what members to inject and how, and lifetime manager responsible for managing the instance.\nAt the later time, when that Type is requested, Unity uses this blueprint to create a pipeline (resolver delegate) to be used to create type.

\n

Each Unity container exposes a collection of available registrations presented as an enumeration of IContainerRegistration objects. This collection could be used to filter and select certain registrations as well as to check if the Type is registered and how.

\n

Different types of registrations

\n

Unity recognizes three different scenarios of how instances and types are created and based on these allows three different types of registrations:

\n

Instances created outside of Unity

\n

A lot of times parts of system's infrastructure require to be available to clients and services of the application. These entities are created and managed outside of the Unity but should be accessible by consumers of the framework during resolution. To enable access to these objects Unity provides a way to register instances. For more information see Instance Registration.

\n

Instances created by Unity using provided Type Factory

\n

Although Unity is quite capable in creating instances of types, sometimes it is more efficient or desireable to use Type factories. Unity provides API to register a special factory delegate. For more information see Factory Registration

\n

Instances created by Unity

\n

This is the most common scenario where objects are created by the container itself. Creation process is controlled by either Type registrations associated with the container or implicit Unity defaults if none registered. For more information how Type can be registered seeType Registration

\n

Container Hierarchies

\n

Unity container provides a way to create child containers (also referred as creating scopes) and allows building sophisticated hierarchical trees of registrations. There are just a few simple rules to follow when dealing with container hierarchies. For more information see Container Hierarchy

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/registration.md","depot_name":".","document_id":"155f0237-7c9a-c764-d36c-ce050328f35d","document_version_independent_id":"9690b687-88ba-a4a2-ef60-1c2cf2353e9f","gitcommit":"https://github.com/unitycontainer/documentation/blob/a17b17619ae5cf4fc682ced9bb9eddc392311e26/tutorials/registration/registration.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/registration.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/registration.md","rawTitle":"

Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Registration","uid":"Tutorial.Registration","updated_at":"2019-03-11 12:32 AM","wordCount":525},{"url":"/tutorials/registration/type/constructor/annotation/","path":"tutorials/registration/type/constructor/annotation/index.html","source_path":"tutorials/registration/Type/Constructor/annotation.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/constructor/annotation/","conceptual":"\n

To select constructors you create through the Unity container, you can use the following three techniques:

\n\n

Annotated Constructor Injection

\n

Constructor Injection with Attribute Annotation allows you to apply attributes to the class' constructor designating it for dependency injection. When creating the class, Unity will always (unless explicitly overwritten in Registration) use that constructor. You only need to use this technique when there is more than one constructor in the target type.

\n

Annotating a Constructor

\n

When a target class contains more than one constructor and the automatic algorithm does not provide desired selection, you may use the InjectionConstructor attribute to specify the constructor you wish to use for injection.

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this example type Service contains four public constructors. Three of these constructors have one parameter each. A Type like this creates an ambiguity that Unity could not resolve by itself.

\n
\n
WARNING
\n

During resolution, the container will pick the first constructor it could satisfy with dependencies and will use it. In the example above, it could be any of the three constructors with one parameter.

\n
\n

The container is not trying to validate all available contractors during normal execution.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructors.

\n
\n

Normally, Unity would select the third constructor with three parameters, but by annotating the second constructor with the attribute you force Unity to use it during resolution.

\n

Multiple Constructor Annotations

\n

Annotating multiple constructors with injection parameters is not recommended. Unity is not guaranteed to process constructors in certain order. If multiple constructors are annotated, behavior might change from version to version.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructor annotations.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/annotation.md","depot_name":".","document_id":"bccfb7ef-9055-d8bb-1199-c150fefc32b1","document_version_independent_id":"ab8a87e3-5b14-9e99-2f2a-60bdaac3187d","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/annotation.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/annotation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/annotation.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor By Attribute Annotation","uid":"Tutorial.Injection.Constructor.Annotation","updated_at":"2019-03-10 08:00 PM","wordCount":409},{"url":"/tutorials/registration/type/constructor/automatic/","path":"tutorials/registration/type/constructor/automatic/index.html","source_path":"tutorials/registration/Type/Constructor/automatic.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/constructor/automatic/","conceptual":"\n

Proper selection of the constructor used for type instantiation is one of the most important aspects of the container operation. When creating an object, the container uses one of the following algorithms to select a constructor it will be using to initialize the object:

\n\n

Automatic Constructor Selection

\n

Automatic constructor selection is performed if no other information is available on how to create a Type. Unity uses dynamic, real time algorithm to discover and select a constructor.

\n

The Unity container will try to execute the most complex constructor it can provide with appropriate dependencies. In other words, if the container can resolve and/or inject all parameters of the constructor, it will be selected.

\n

Creating Build Pipeline

\n

Selection process takes place during the first resolution of a Type contract. Unity container employs lazy resolution strategy. It will defer pipeline creation until the contract (RegistrationType and Name) is requested.

\n

The lazy approach allows registrations to proceed at random order and do not require dependencies to be registered before dependents. As long as all of these are available at the time of resolution Unity does not care in what order they were registered.

\n

Constructor Selection Steps

\n

One of the first steps, when creating a pipeline, is a constructor selection. Constructors are selected in the following order:

\n
    \n
  • If present, use registered Injection Constructor
  • \n
  • If present, annotated with an attribute
  • \n
  • Automatically select constructor\n
      \n
    • Get all accessible constructors
    • \n
    • Process constructors in ascending order from most complex to the default\n
        \n
      • Filter out restricted constructors
      • \n
      • Loop through parameters and check if\n
          \n
        • Is primitive\n
            \n
          • Is registered with the container
          • \n
          • Has default value
          • \n
          \n
        • \n
        • Is resolvable type
        • \n
        • Is registered with container
        • \n
        \n
      • \n
      • Select the first constructor the container can create
      • \n
      \n
    • \n
    \n
  • \n
\n

The Unity container will select the first successful match and use it as a selection.

\n
\n
WARNING
\n

When more than one constructor could be matched at the same time, the order and constructor selection can not be guaranteed.

\n
\n

During normal operation the container does not perform validation.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will perform a selection validation and will throw an exception, reporting ambiguous constructors, if more than one constructor can be successfully selected with current configuration.

\n
\n

If no constructor could be selected, the container will throw an exception.

\n

Pipeline retention

\n

Once the pipeline is created, it will be used to satisfy all subsequent requests for that contract. If you need to update or rebuild the pipeline, the contract has to be re-registered.

\n\n

See Also:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/automatic.md","depot_name":".","document_id":"c1e7c148-cf93-2de0-cc54-32701d701632","document_version_independent_id":"eca76e28-a114-ec13-d320-563b416d21f4","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/registration/Type/Constructor/automatic.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/automatic.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/automatic.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Automatic Constructor Injection","uid":"Tutorial.Injection.Constructor.Implicit","updated_at":"2019-04-30 12:00 AM","wordCount":513},{"url":"/tutorials/registration/type/constructor/constructor/","path":"tutorials/registration/type/constructor/constructor/index.html","source_path":"tutorials/registration/Type/Constructor/constructor.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/constructor/constructor/","conceptual":"\n

Constructor Injection is a process where Unity selects a constructor, resolves parameter dependencies, and executes the constructor by injecting it with resolved or injected dependencies.

\n

Restrictions

\n

Unity can be configured to execute any accessible constructor with the following exceptions:

\n
    \n
  • static constructors are not supported
  • \n
  • private and protected constructors are not accessible
  • \n
  • Constructors with ref and out parameters are not supported
  • \n
\n

Selection Methods

\n

Selecting a constructor is one of the first steps in creating a resolution pipeline. Unity supports the following selection methods:

\n

Automatic Selection

\n

Automatic Selection is a default method of selecting constructors. It will be used if no constructor is injected or annotated.

\n

By default Unity uses 'smart' algorithm to select constructor. It sorts all accessible constructors by number of parameters in ascending order and goes from most complex to the default, checking if it can satisfy its parameters. The container selects the first constructor it can create and executes it.

\n
\n
WARNING
\n

Unity will not check for ambiguities unless Diagnostic extension is installed.

\n
\n
\n
TIP
\n

Legacy selection algorithm which selects the most complex constructor could be enabled by installing Legacy extension. It will replace and disable 'smart' selection.

\n
\n

Constructor Annotation

\n

Constructor annotated with InjectionConstructor attribute overrides automatic selection. For more information see Annotating Type for Constructor Injection

\n

Constructor injection

\n

Constructor configuration registered for the Type has highest priority. It will override other selection methods and will always execute the configured constructor.

\n

As opposed to methods, constructors do not have a name to distinguish one from the other. The only difference between constructors is number and Type of parameters they take. Because of that constructor selection is based solely on parameters and its types.

\n

Invoking the Constructor

\n

Invoked constructor and injection of its parameters is configured by registering the Type with the InjectionConstructor. Creating the InjectionConstructor with proper injection members or values determines what constructor is selected and how parameters are initialized. Values and resolvers added to InjectionConstructor will be used to initialize parameters of the constructor of the Type. The following aspects could be configured:

\n
    \n
  • Parameter Type
  • \n
  • Force resolution of parameter
  • \n
  • Specify the Contract/Registration Name to by used when resolving
  • \n
  • Provide a Resolver for the parameter
  • \n
  • Provide value
  • \n
\n
\n
TIP
\n

As alternative, helper Invoke.Constructor(...) can be used to configure invoked constructor.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/constructor.md","depot_name":".","document_id":"3d0b4d82-1433-301e-4a5a-ca84297b7a66","document_version_independent_id":"2187b1df-e919-dcb8-3c5d-9436f9b6eb4b","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/registration/Type/Constructor/constructor.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/constructor.md","rawTitle":"

Constructor Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Constructor Injection","uid":"Tutorial.Injection.Constructor","updated_at":"2019-04-05 01:56 AM","wordCount":396},{"url":"/tutorials/registration/type/constructor/param_count/","path":"tutorials/registration/type/constructor/param_count/index.html","source_path":"tutorials/registration/Type/Constructor/param_count.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_count/","conceptual":"\n

By Number of Parameters

\n

Selecting constructor by number of parameters is the simplest form of selection. You could use this selection method if the constructor you invoking has unique number of parameters.

\n

Type of Parameter as Contract Type

\n

This method is useful when you are working on a Type that takes certain number of parameters but you don't care what these parameter types are.

\n

Parameters

\n

In a case like this you could use Resolve.Parameter() to specify that you want a parameter at this position to be resolved. For example, consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

It has several constructors with different number of parameters each. Normally, the container would try to run the most complex constructor, but if you want to invoke the one with just a single parameter you need to register it like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this registration you configure the container to invoke a constructor that takes just one parameter. The parameter is resolved using a contract with a type of the parameter and no name.

\n

Now if you resolve the type, the container will invoke that constructor and inject the parameter:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Generic Parameters

\n

The same method as above, could be used to invoke constructors with generic parameters. Consider the following class:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

To configure the container to invoke the first constructor you would execute the same code with exception of how you pass in a type of the contract. Registration of an open generic requires a conventional method call:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

When resolved, the container will invoke the first constructor and inject it with created instance of Object:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Parameter dependencies with Contract Name

\n

When configuring constructors with the method described above you should be mindful of parameter annotations and contract names these annotations might provide.

\n

When implicitly injecting a parameter, the container will recognize all metadata the parameter is annotated with and will properly inject it with correct contract. When you add an InjectionMember to configure the parameter you override all these annotations.

\n

If you look at the second constructor of SampleType<T> you will notice that the first parameter is marked with Dependency attribute. Normally, when resolving that parameter, Unity will, if present, use Name of the Contract the attribute provides. But when you register it as in the following example, you will override that contract:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

When resolved, Unity will execute the constructor but instead of dependency with contract name one it will use contract with no name.

\n

If you need to, you could override contract name explicitly as in the following example:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

If you'd like to preserve contracts from annotations, you need to use one of the following selection methods instead.

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_count.md","depot_name":".","document_id":"f933f186-0833-8a03-bf07-0a52c0085a6b","document_version_independent_id":"12c8b824-4e4b-7d3e-eb49-04960e9f8ba3","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/param_count.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_count.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_count.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor By Number of Parameters","uid":"Tutorial.Injection.Constructor.Count","updated_at":"2019-03-10 08:00 PM","wordCount":555},{"url":"/tutorials/registration/type/constructor/param_none/","path":"tutorials/registration/type/constructor/param_none/index.html","source_path":"tutorials/registration/Type/Constructor/param_none.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_none/","conceptual":"\n

A Default called a constructor with no parameters. It could be explicitly defined on a Type or if Type has no defined constructors, C# will implicitly create one for you.

\n

Invoking Default Constructor

\n

To configure resolution of a Type with a default constructor you need to register that Type with Injection Constructor Member which takes no parameters.

\n

Class Service

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Class Service is a plain type with three accessible constructors. First constructor is a default constructor with no parameters, second and third constructors take one parameter each.

\n

Registering Service

\n

If you try to resolve this class with no registration, Unity will select one of the constructors with parameter. You can not guarantee which one it will select because both have the same number of parameters and each could be satisfied with dependencies.

\n
\n
TIP
\n

If Diagnostic is enabled, it will throw an ambiguous constructor exception.

\n
\n

To prevent ambiguity, or if you need to execute default constructor, you can register this Type and instruct the container to invoke default constructor during resolution. In simplest form this registration will look like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n
\n
NOTE
\n

Of corse you could add other instructions like mapping, name, etc. to the registration but for simplicity it is omitted in this example.

\n
\n

Resolving Service

\n

Once you register the Service with the container, you can resolve it normally:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

At first resolution the container will create a pipeline which invokes a default constructor to create the Service and will be using it for all subsequent resolutions.

\n

Default Generic Constructor

\n

Unity can register and create Generic types. It allows to register Closed and Open Generics and can resolve constructed types based on these.

\n

Class Service<T>

\n

The principle for registering of default constructor is exactly the same as for plain types. Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Class Service<T> is an open generic type with two constructors. First constructor is a default constructor with no parameters and second takes one parameter.

\n

Registering Service<T>

\n

Normally, Unity will create this Type by executing most complex constructor. To force Unity to use default constructor you need to register Service<T> and instruct the container to invoke it during resolution. You can register constructed generic based on Service<T> like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Or you can register Open Generic Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Resolving Service<T>

\n

If you resolve Service<object>:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

either registration will invoke the default constructor.

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_none.md","depot_name":".","document_id":"44080f41-8f6d-eb44-2550-bf960bb69e34","document_version_independent_id":"d1683f3a-6ff8-ac65-c68d-8171d54657d8","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/registration/Type/Constructor/param_none.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_none.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_none.md","rawTitle":"

Default Constructors

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Default Constructor","uid":"Tutorial.Injection.Constructor.Default","updated_at":"2019-04-05 01:56 AM","wordCount":497},{"url":"/tutorials/registration/type/constructor/param_types/","path":"tutorials/registration/type/constructor/param_types/index.html","source_path":"tutorials/registration/Type/Constructor/param_types.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_types/","conceptual":"\n

Select Constructor by Parameter types

\n

Exact Match

\n

Compatible Type Match

\n

Contracts with Name

\n

Type Matching exactly

\n

Compatible Implementation

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_types.md","depot_name":".","document_id":"a43b0380-00c5-f9f0-13a0-bcd8dfecb41b","document_version_independent_id":"cbce70bb-3d73-b545-7ca7-bfc6f0fed947","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/param_types.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_types.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_types.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor by Parameter Types","uid":"Tutorial.Injection.Constructor.Types","updated_at":"2019-03-10 08:00 PM","wordCount":39},{"url":"/tutorials/registration/type/constructor/param_values/","path":"tutorials/registration/type/constructor/param_values/index.html","source_path":"tutorials/registration/Type/Constructor/param_values.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_values/","conceptual":"\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_values.md","depot_name":".","document_id":"cd589f0b-bc03-758c-0d5f-b570dc451473","document_version_independent_id":"a6cf7331-25f9-4155-a93b-1b9b1d859246","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/param_values.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_values.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_values.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor by Parameter Values","uid":"Tutorial.Injection.Constructor.Values","updated_at":"2019-03-10 08:00 PM","wordCount":20},{"url":"/tutorials/registration/type/field/","path":"tutorials/registration/type/field/index.html","source_path":"tutorials/registration/Type/field.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/field/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/field.md","depot_name":".","document_id":"c2a3677e-e25a-23fc-1d1d-afcf1cae5b9c","document_version_independent_id":"21bedaea-483b-16e5-6828-da96ffd1aa89","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/field.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/field.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/field.md","rawTitle":"

Field Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Field Injection","uid":"Tutorial.Injection.Field","updated_at":"2019-03-07 05:22 AM","wordCount":0},{"url":"/tutorials/registration/type/injection/default/","path":"tutorials/registration/type/injection/default/index.html","source_path":"tutorials/registration/Type/Injection/default.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/injection/default/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/default.md","depot_name":".","document_id":"f0ac9ade-1043-129a-d73a-91953ac7b231","document_version_independent_id":"14895510-22b9-f067-0a3b-42bb0235c831","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/default.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/default.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/default.md","rawTitle":"

Support for Default Values

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Support for Default Values","uid":"Tutorial.Injection.Default","updated_at":"2019-03-11 01:08 AM","wordCount":0},{"url":"/tutorials/registration/type/injection/injected/","path":"tutorials/registration/type/injection/injected/index.html","source_path":"tutorials/registration/Type/Injection/injected.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/injection/injected/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injected.md","depot_name":".","document_id":"32c573ec-454c-caaa-9c9c-3888e8929b0d","document_version_independent_id":"a328b057-ba1f-20ac-e60a-04ea7bebc1bf","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/injected.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injected.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/injected.md","rawTitle":"

Injecting Dependency Values

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Injecting Dependency Values","uid":"Tutorial.Injection.Injected","updated_at":"2019-03-11 01:08 AM","wordCount":0},{"url":"/tutorials/registration/type/injection/injection/","path":"tutorials/registration/type/injection/injection/index.html","source_path":"tutorials/registration/Type/Injection/injection.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/injection/injection/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injection.md","depot_name":".","document_id":"22387587-d7a8-4e6a-654c-d8728d074653","document_version_independent_id":"09bc78cd-f176-4aaa-41cd-119e51ab8aca","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/injection.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injection.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/injection.md","rawTitle":"

Dependency Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Dependency Injection","uid":"Tutorial.Injection","updated_at":"2019-03-11 01:08 AM","wordCount":0},{"url":"/tutorials/registration/type/injection/resolved/","path":"tutorials/registration/type/injection/resolved/index.html","source_path":"tutorials/registration/Type/Injection/resolved.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/injection/resolved/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/resolved.md","depot_name":".","document_id":"17dac8cb-7105-cb4b-9341-a478df7a564e","document_version_independent_id":"4afe44d5-4340-acd2-3533-c8fe0984dbcb","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/resolved.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/resolved.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/resolved.md","rawTitle":"

Resolving Dependency Values

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Resolving Dependency Values","uid":"Tutorial.Injection.Resolved","updated_at":"2019-03-11 01:08 AM","wordCount":0},{"url":"/tutorials/registration/type/method/","path":"tutorials/registration/type/method/index.html","source_path":"tutorials/registration/Type/method.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/method/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/method.md","depot_name":".","document_id":"ece87da2-2138-25a2-4b62-f09b94f500d9","document_version_independent_id":"df634c41-a696-a56e-3edb-6be9079a6660","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/method.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/method.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/method.md","rawTitle":"

Method Invocation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Method Injection","uid":"Tutorial.Injection.Method","updated_at":"2019-03-07 05:22 AM","wordCount":0},{"url":"/tutorials/registration/type/parameter/","path":"tutorials/registration/type/parameter/index.html","source_path":"tutorials/registration/Type/parameter.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/parameter/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/parameter.md","depot_name":".","document_id":"cb8b1b59-03db-0e46-fead-1d5d5a92812f","document_version_independent_id":"a8fc56d0-58e8-03ea-b38f-ad68a88818c2","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/parameter.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/parameter.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/parameter.md","rawTitle":"

Parameter Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Parameter Injection","uid":"Tutorial.Injection.Parameter","updated_at":"2019-03-07 05:22 AM","wordCount":0},{"url":"/tutorials/registration/type/property/","path":"tutorials/registration/type/property/index.html","source_path":"tutorials/registration/Type/property.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/property/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/property.md","depot_name":".","document_id":"e1fdee6b-4cc3-4110-4ed7-a825595503d1","document_version_independent_id":"d1d79004-065d-bfbf-d2b1-f3c2a6da14df","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/property.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/property.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/property.md","rawTitle":"

Property Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Injection","uid":"Tutorial.Injection.Property","updated_at":"2019-03-07 05:22 AM","wordCount":0},{"url":"/tutorials/registration/type/registration/","path":"tutorials/registration/type/registration/index.html","source_path":"tutorials/registration/Type/registration.md","locale":"en-us","canonical_url":"https:///en-us/tutorials/registration/type/registration/","conceptual":"\n

Type registration is where all the Unity magic is happening. It provides complete and flexible control of all aspects of type creation and management.

\n

When a Type is registered Unity creates a contract (a registration) consisting of a Type, a Name, and instructions on how this contract should be fulfilled when requested.

\n

Minimum Registration Requirements

\n

The only required part of the registration is a registered Type itself. Theoretically you could register a Type like this:

\n
container.RegisterType<Service>();\n
\n

This would tell the container to use all defaults when creating Service. Registrations like this do not make much sense. If creation process does not require any customization, all that time spent on registering such Type is wasted. It is measurably faster to resolve a plain Type from the container if it is not registered at all.

\n

When a Type is annotated with injection attributes it does not require registration either. If you are satisfied with annotated selections, appropriate constructor and all other members are annotated, and you do not require lifetime management for created instances, the Type should not be registered.

\n

You should only register types if at least one of the following is true:

\n
    \n
  • Contract/Registration requires a Name
  • \n
  • Require a mapping between service and implementation types
  • \n
  • Require lifetime policy other than transient
  • \n
  • Need to override injection annotated with attribute(s)
  • \n
  • Nondefault constructor should be selected
  • \n
  • Properties or fields should be injected
  • \n
  • Method(s) should be called during initialization
  • \n
\n

Creating Registration Contracts

\n

Simplest form of a contract is a registration without a Name ( the Name is null ). This type of registration is called default and in some cases is used as a prototype during resolution of Generic types (hence name default).

\n

A contract could have a Name. The Name could be any arbitrary string of one or more characters. The simple named contract could be registered like this:

\n
container.RegisterType<Service>("Contract Name");\n
\n
\n
NOTE
\n

It is not recommended to use empty strings as names.

\n
\n

Creating Type Mapping

\n

A mapping instructs Unity on how to satisfy the contract and what implementation Type should be used to create an object. For example is you want to associate an interface IService with implementation Service you would register it like this:

\n
container.RegisterType<IService, Service>();\n
\n

Or you could register multiple implementations for the same service:

\n
container.RegisterType<IService, MailService>("Email");\ncontainer.RegisterType<IService, WebService>("WebMail");\ncontainer.RegisterType<IService, SecureService>("Encrypted");\n
\n

For more information see <xref:Tutorial.Registration.Mapping>

\n

Lifetime Management

\n

Unity provides wide variety of lifetime managers compatible with type registrations. Each of these managers provide unique algorithm for instance management.

\n

In example above services are created on each request. In most cases it is desireable to create services only once. To create singleton services appropriate lifetime managers must be added to the registration:

\n
container.RegisterType<IService, MailService>("Email", TypeLifetime.Singleton);\ncontainer.RegisterType<IService, WebService>("WebMail", TypeLifetime.Singleton);\ncontainer.RegisterType<IService, SecureService>("Encrypted", TypeLifetime.Singleton);\n
\n

For more information about lifetime management see Lifetime Management

\n

Creation Pipeline

\n

Unity instantiates an objects by creating a resolver pipeline and executing it with passed in injection values. Each pipeline consists of a several steps with each step performing part of the initialization.

\n

How the pipeline is assembled and what values are injected is controlled by collection of Injection Member objects passed to registration method. The normal steps of the object creation process are:

\n

Injection Instructions

\n

During the registration you could Configure the container to select certain constructor, initialize properties and fields, call methods, and inject values and instructions for dependencies. All this is done by passing appropriate Injection Members to the registration. For more information see:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/registration.md","depot_name":".","document_id":"78bfd467-15ee-c33f-03fe-7bf8e5fa4acf","document_version_independent_id":"6550f935-d2d3-ea0d-a876-56627397815d","gitcommit":"https://github.com/unitycontainer/documentation/blob/2db5f0db6ca55d08f45572868da0e40bb64f7bc0/tutorials/registration/Type/registration.md","is_dynamic_rendering":true,"locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/registration.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/registration.md","rawTitle":"

Type Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Type Registration","uid":"Tutorial.Registration.Type","updated_at":"2019-03-11 12:52 AM","wordCount":576},{"url":"/tutorials/toc.json","path":"tutorials/toc.json","source_path":"tutorials/toc.yml","locale":"en-us"}]} \ No newline at end of file diff --git a/_site/.xrefmap.json b/_site/.xrefmap.json deleted file mode 100644 index d515374..0000000 --- a/_site/.xrefmap.json +++ /dev/null @@ -1 +0,0 @@ -{"references":[{"uid":"Article.Application.Design","href":"https:///articles/application/","name":"Article.Application.Design","name":"Article.Application.Design"},{"uid":"Article.Change.Log","href":"https:///articles/changelog/","name":"Article.Change.Log","name":"Article.Change.Log"},{"uid":"Article.Unity.Design","href":"https:///articles/design/","name":"Article.Unity.Design","name":"Article.Unity.Design"},{"uid":"Article.Unity.Features","href":"https:///articles/features/","name":"Article.Unity.Features","name":"Article.Unity.Features"},{"uid":"Article.Unity.History","href":"https:///articles/history/","name":"Article.Unity.History","name":"Article.Unity.History"},{"uid":"Article.Unity.Install","href":"https:///articles/installation/","name":"Article.Unity.Install","name":"Article.Unity.Install"},{"uid":"Article.Unity.Introduction","href":"https:///articles/introduction/","name":"Article.Unity.Introduction","name":"Article.Unity.Introduction"},{"uid":"Article.Unity.Using","href":"https:///articles/quickstart/","name":"Article.Unity.Using","name":"Article.Unity.Using"},{"uid":"Specification.Constructor","href":"https:///specs/constructor/","name":"Specification.Constructor","name":"Specification.Constructor"},{"uid":"Specification.Field","href":"https:///specs/field/","name":"Specification.Field","name":"Specification.Field"},{"uid":"Specification.Method","href":"https:///specs/method/","name":"Specification.Method","name":"Specification.Method"},{"uid":"Specification.Property","href":"https:///specs/property/","name":"Specification.Property","name":"Specification.Property"},{"uid":"Specification.Summary","href":"https:///specs/summary/","name":"Specification.Summary","name":"Specification.Summary"},{"uid":"Specification.Unity","href":"https:///specs/specification/","name":"Unity Container Specification","name":"Unity Container Specification"},{"uid":"Specification.Workflow","href":"https:///specs/workflow/","name":"Workflow","name":"Workflow"},{"uid":"Tutorial.Annotation","href":"https:///tutorials/annotation/annotation/","name":"Attributed Injection Model","name":"Attributed Injection Model"},{"uid":"Tutorial.Annotation.Constructor","href":"https:///tutorials/annotation/constructor/","name":"Annotating Type for Constructor Injection","name":"Annotating Type for Constructor Injection"},{"uid":"Tutorial.Annotation.Field","href":"https:///tutorials/annotation/field/","name":"Annotating types for Field injection","name":"Annotating types for Field injection"},{"uid":"Tutorial.Annotation.Method","href":"https:///tutorials/annotation/method/","name":"Tutorial.Annotation.Method","name":"Tutorial.Annotation.Method"},{"uid":"Tutorial.Annotation.Parameter","href":"https:///tutorials/annotation/parameter/","name":"Tutorial.Annotation.Parameter","name":"Tutorial.Annotation.Parameter"},{"uid":"Tutorial.Annotation.Property","href":"https:///tutorials/annotation/property/","name":"Property Injection Annotation","name":"Property Injection Annotation"},{"uid":"Tutorial.BuildUp","href":"https:///tutorials/composition/buildup/buildup/","name":"Object Build Up","name":"Object Build Up"},{"uid":"Tutorial.Collections","href":"https:///tutorials/composition/collections/","name":"Collections","name":"Collections"},{"uid":"Tutorial.Composition","href":"https:///tutorials/composition/composition/","name":"Composition","name":"Composition"},{"uid":"Tutorial.Container.Hierarchy","href":"https:///tutorials/hierarchies/","name":"Container Hierarchy","name":"Container Hierarchy"},{"uid":"Tutorial.Deferred","href":"https:///tutorials/composition/generics/deferred/","name":"Deferred Resolution","name":"Deferred Resolution"},{"uid":"Tutorial.Extension.Activation","href":"https:///tutorials/extensions/activation/","name":"Force Activation Extension","name":"Force Activation Extension"},{"uid":"Tutorial.Extension.Compilation","href":"https:///tutorials/extensions/compilation/","name":"Force Compilation Extension","name":"Force Compilation Extension"},{"uid":"Tutorial.Extension.Diagnostic","href":"https:///tutorials/extensions/diagnostic/","name":"Diagnostic Extension","name":"Diagnostic Extension"},{"uid":"Tutorial.Extension.Legacy","href":"https:///tutorials/extensions/legacy/","name":"Legacy Extension","name":"Legacy Extension"},{"uid":"Tutorial.Extensions","href":"https:///tutorials/extensions/extensions/","name":"Unity Extensions","name":"Unity Extensions"},{"uid":"Tutorial.Generics","href":"https:///tutorials/composition/generics/generics/","name":"Generics","name":"Generics"},{"uid":"Tutorial.Generics.Metadata","href":"https:///tutorials/composition/generics/metadata/","name":"Metadata","name":"Metadata"},{"uid":"Tutorial.Injection","href":"https:///tutorials/registration/type/injection/injection/","name":"Dependency Injection","name":"Dependency Injection"},{"uid":"Tutorial.Injection.Constructor","href":"https:///tutorials/registration/type/constructor/constructor/","name":"Constructor Injection","name":"Constructor Injection"},{"uid":"Tutorial.Injection.Constructor.Annotation","href":"https:///tutorials/registration/type/constructor/annotation/","name":"Select Constructor By Attribute Annotation","name":"Select Constructor By Attribute Annotation"},{"uid":"Tutorial.Injection.Constructor.Count","href":"https:///tutorials/registration/type/constructor/param_count/","name":"Select Constructor By Number of Parameters","name":"Select Constructor By Number of Parameters"},{"uid":"Tutorial.Injection.Constructor.Default","href":"https:///tutorials/registration/type/constructor/param_none/","name":"Default Constructor","name":"Default Constructor"},{"uid":"Tutorial.Injection.Constructor.Implicit","href":"https:///tutorials/registration/type/constructor/automatic/","name":"Automatic Constructor Injection","name":"Automatic Constructor Injection"},{"uid":"Tutorial.Injection.Constructor.Types","href":"https:///tutorials/registration/type/constructor/param_types/","name":"Select Constructor by Parameter Types","name":"Select Constructor by Parameter Types"},{"uid":"Tutorial.Injection.Constructor.Values","href":"https:///tutorials/registration/type/constructor/param_values/","name":"Select Constructor by Parameter Values","name":"Select Constructor by Parameter Values"},{"uid":"Tutorial.Injection.Default","href":"https:///tutorials/registration/type/injection/default/","name":"Support for Default Values","name":"Support for Default Values"},{"uid":"Tutorial.Injection.Field","href":"https:///tutorials/registration/type/field/","name":"Field Injection","name":"Field Injection"},{"uid":"Tutorial.Injection.Injected","href":"https:///tutorials/registration/type/injection/injected/","name":"Injecting Dependency Values","name":"Injecting Dependency Values"},{"uid":"Tutorial.Injection.Method","href":"https:///tutorials/registration/type/method/","name":"Method Injection","name":"Method Injection"},{"uid":"Tutorial.Injection.Parameter","href":"https:///tutorials/registration/type/parameter/","name":"Parameter Injection","name":"Parameter Injection"},{"uid":"Tutorial.Injection.Property","href":"https:///tutorials/registration/type/property/","name":"Property Injection","name":"Property Injection"},{"uid":"Tutorial.Injection.Resolved","href":"https:///tutorials/registration/type/injection/resolved/","name":"Resolving Dependency Values","name":"Resolving Dependency Values"},{"uid":"Tutorial.Lazy","href":"https:///tutorials/composition/generics/lazy/","name":"Lazy","name":"Lazy"},{"uid":"Tutorial.Lifetime","href":"https:///tutorials/lifetime/lifetime/","name":"Lifetime Management","name":"Lifetime Management"},{"uid":"Tutorial.Lifetime.Container","href":"https:///tutorials/lifetime/container/","name":"Per Container Lifetime","name":"Per Container Lifetime"},{"uid":"Tutorial.Lifetime.Container.Transient","href":"https:///tutorials/lifetime/container_transient/","name":"Container Lifetime","name":"Container Lifetime"},{"uid":"Tutorial.Lifetime.External","href":"https:///tutorials/lifetime/external/","name":"External Lifetime","name":"External Lifetime"},{"uid":"Tutorial.Lifetime.Hierarchical","href":"https:///tutorials/lifetime/hierarchical/","name":"Hierarchical Lifetime","name":"Hierarchical Lifetime"},{"uid":"Tutorial.Lifetime.Managers","href":"https:///tutorials/lifetime/managers/","name":"Lifetime Managers","name":"Lifetime Managers"},{"uid":"Tutorial.Lifetime.Resolve","href":"https:///tutorials/lifetime/resolve/","name":"Per Resolve Lifetime","name":"Per Resolve Lifetime"},{"uid":"Tutorial.Lifetime.Singleton","href":"https:///tutorials/lifetime/singleton/","name":"Singleton Lifetime","name":"Singleton Lifetime"},{"uid":"Tutorial.Lifetime.Thread","href":"https:///tutorials/lifetime/thread/","name":"Per Thread Lifetime","name":"Per Thread Lifetime"},{"uid":"Tutorial.Lifetime.Transient","href":"https:///tutorials/lifetime/transient/","name":"Transient Lifetime","name":"Transient Lifetime"},{"uid":"Tutorial.Mapping","href":"https:///tutorials/composition/mapping/mapping/","name":"Type Mapping","name":"Type Mapping"},{"uid":"Tutorial.Mapping.Generic","href":"https:///tutorials/composition/mapping/generic/","name":"Generic Type Mapping","name":"Generic Type Mapping"},{"uid":"Tutorial.Mapping.Implementation","href":"https:///tutorials/composition/mapping/implementation/","name":"Service to Implementation Mapping","name":"Service to Implementation Mapping"},{"uid":"Tutorial.Registration","href":"https:///tutorials/registration/registration/","name":"Registration","name":"Registration"},{"uid":"Tutorial.Registration.Factory","href":"https:///tutorials/registration/factory/","name":"Factory Registration","name":"Factory Registration"},{"uid":"Tutorial.Registration.Instance","href":"https:///tutorials/registration/instance/","name":"Instance Registration","name":"Instance Registration"},{"uid":"Tutorial.Registration.Metadata","href":"https:///tutorials/registration/metadata/","name":"Registration Metadata","name":"Registration Metadata"},{"uid":"Tutorial.Registration.Type","href":"https:///tutorials/registration/type/registration/","name":"Type Registration","name":"Type Registration"},{"uid":"Tutorial.Resolution","href":"https:///tutorials/composition/resolution/resolution/","name":"Object Resolution","name":"Object Resolution"},{"uid":"Tutorial.Resolution.Override","href":"https:///tutorials/composition/overrides/override/","name":"Resolution Override","name":"Resolution Override"},{"uid":"Tutorial.Resolution.Override.Dependency","href":"https:///tutorials/composition/overrides/dependency/","name":"Dependency Override","name":"Dependency Override"},{"uid":"Tutorial.Resolution.Override.Field","href":"https:///tutorials/composition/overrides/field/","name":"Field Overrides","name":"Field Overrides"},{"uid":"Tutorial.Resolution.Override.Parameter","href":"https:///tutorials/composition/overrides/parameter/","name":"Parameter Override","name":"Parameter Override"},{"uid":"Tutorial.Resolution.Override.Property","href":"https:///tutorials/composition/overrides/property/","name":"Property Override","name":"Property Override"},{"uid":"Tutorial.Resolution.Selection","href":"https:///tutorials/composition/selection/selection/","name":"Selection","name":"Selection"},{"uid":"Tutorial.Resolution.Type","href":"https:///tutorials/composition/resolution/type/","name":"Resolution By Type","name":"Resolution By Type"},{"uid":"Tutorial.Selection.Constructor","href":"https:///tutorials/composition/selection/constructor/","name":"Automatic Constructor Selection","name":"Automatic Constructor Selection"},{"uid":"Tutorial.Terms","href":"https:///tutorials/definitions/","name":"Terms and Definitions","name":"Terms and Definitions"}],"properties":{"tags":["/"]}} \ No newline at end of file diff --git a/_site/api/index.html b/_site/api/index.html deleted file mode 100644 index 6b37476..0000000 --- a/_site/api/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

This documentation is generated by DocFX

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"11/26/2017","updated_at_date_time":"2017-11-26T02:59:56Z"},"_path":"api/index.html","_tocRel":"toc.json","canonical_url":"https:///en-us/api/","conceptual":"\n

This documentation is generated by DocFX

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/api/index.md","depot_name":".","document_id":"b900a6ee-1d3b-cc19-ca58-f621b5ddfbff","document_version_independent_id":"62c4b9bf-c97a-4afb-633c-37a573696248","gitcommit":"https://github.com/unitycontainer/documentation/blob/fc9fe03376dd8ca08cf491c586c6f6e4e720545a/api/index.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/api/index.md","original_content_git_url_template":"{repo}/blob/{branch}/api/index.md","rawTitle":"

API Documentation Section

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"API Documentation Section","updated_at":"2017-11-26 02:59 AM","wordCount":6},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\_themes"} \ No newline at end of file diff --git a/_site/api/toc.json b/_site/api/toc.json deleted file mode 100644 index b0ca3d5..0000000 --- a/_site/api/toc.json +++ /dev/null @@ -1 +0,0 @@ -{"metadata":{"_appTitle":"Unity Container","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appFaviconPath":"images/favicon.png"},"items":[{"name":"Microsoft.Practices.Unity.Configuration","uid":"Microsoft.Practices.Unity.Configuration","items":[{"name":"AliasElement","uid":"Microsoft.Practices.Unity.Configuration.AliasElement"},{"name":"AliasElementCollection","uid":"Microsoft.Practices.Unity.Configuration.AliasElementCollection"},{"name":"ArrayElement","uid":"Microsoft.Practices.Unity.Configuration.ArrayElement"},{"name":"AssemblyElement","uid":"Microsoft.Practices.Unity.Configuration.AssemblyElement"},{"name":"AssemblyElementCollection","uid":"Microsoft.Practices.Unity.Configuration.AssemblyElementCollection"},{"name":"ConstructorElement","uid":"Microsoft.Practices.Unity.Configuration.ConstructorElement"},{"name":"ContainerConfiguringElementCollection","uid":"Microsoft.Practices.Unity.Configuration.ContainerConfiguringElementCollection"},{"name":"ContainerElement","uid":"Microsoft.Practices.Unity.Configuration.ContainerElement"},{"name":"ContainerElementCollection","uid":"Microsoft.Practices.Unity.Configuration.ContainerElementCollection"},{"name":"ContainerExtensionElement","uid":"Microsoft.Practices.Unity.Configuration.ContainerExtensionElement"},{"name":"ContainerExtensionElementCollection","uid":"Microsoft.Practices.Unity.Configuration.ContainerExtensionElementCollection"},{"name":"DependencyElement","uid":"Microsoft.Practices.Unity.Configuration.DependencyElement"},{"name":"ExtensionConfigurationElement","uid":"Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElement"},{"name":"ExtensionConfigurationElementCollection","uid":"Microsoft.Practices.Unity.Configuration.ExtensionConfigurationElementCollection"},{"name":"InjectionMemberElementCollection","uid":"Microsoft.Practices.Unity.Configuration.InjectionMemberElementCollection"},{"name":"InstanceElement","uid":"Microsoft.Practices.Unity.Configuration.InstanceElement"},{"name":"InstanceElementCollection","uid":"Microsoft.Practices.Unity.Configuration.InstanceElementCollection"},{"name":"LifetimeElement","uid":"Microsoft.Practices.Unity.Configuration.LifetimeElement"},{"name":"MethodElement","uid":"Microsoft.Practices.Unity.Configuration.MethodElement"},{"name":"NamedElement","uid":"Microsoft.Practices.Unity.Configuration.NamedElement"},{"name":"NamespaceElement","uid":"Microsoft.Practices.Unity.Configuration.NamespaceElement"},{"name":"NamespaceElementCollection","uid":"Microsoft.Practices.Unity.Configuration.NamespaceElementCollection"},{"name":"OptionalElement","uid":"Microsoft.Practices.Unity.Configuration.OptionalElement"},{"name":"ParameterElement","uid":"Microsoft.Practices.Unity.Configuration.ParameterElement"},{"name":"ParameterElementCollection","uid":"Microsoft.Practices.Unity.Configuration.ParameterElementCollection"},{"name":"ParameterValueElementCollection","uid":"Microsoft.Practices.Unity.Configuration.ParameterValueElementCollection"},{"name":"PropertyElement","uid":"Microsoft.Practices.Unity.Configuration.PropertyElement"},{"name":"RegisterElement","uid":"Microsoft.Practices.Unity.Configuration.RegisterElement"},{"name":"RegisterElementCollection","uid":"Microsoft.Practices.Unity.Configuration.RegisterElementCollection"},{"name":"SectionExtensionElement","uid":"Microsoft.Practices.Unity.Configuration.SectionExtensionElement"},{"name":"SectionExtensionElementCollection","uid":"Microsoft.Practices.Unity.Configuration.SectionExtensionElementCollection"},{"name":"UnityConfigurationSection","uid":"Microsoft.Practices.Unity.Configuration.UnityConfigurationSection"},{"name":"UnityContainerExtensions","uid":"Microsoft.Practices.Unity.Configuration.UnityContainerExtensions"},{"name":"ValueElement","uid":"Microsoft.Practices.Unity.Configuration.ValueElement"}]},{"name":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers","items":[{"name":"ConfigurationElementExtensions","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ConfigurationElementExtensions"},{"name":"DictionaryExtensions","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.DictionaryExtensions"},{"name":"TypeResolver","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolver"},{"name":"TypeResolverImpl","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolverImpl"},{"name":"UnknownElementHandlerMap","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.UnknownElementHandlerMap`1","name.vb":"UnknownElementHandlerMap(Of TContainingElement)"},{"name":"ValueElementHelper","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.ValueElementHelper"},{"name":"XmlWriterExtensions","uid":"Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.XmlWriterExtensions"}]},{"name":"Unity","uid":"Unity","items":[{"name":"DefaultLifetime","uid":"Unity.DefaultLifetime"},{"name":"DependencyAttribute","uid":"Unity.DependencyAttribute"},{"name":"DependencyResolutionAttribute","uid":"Unity.DependencyResolutionAttribute"},{"name":"Diagnostic","uid":"Unity.Diagnostic"},{"name":"DiagnosticExtensions","uid":"Unity.DiagnosticExtensions"},{"name":"ExtensionExtensions","uid":"Unity.ExtensionExtensions"},{"name":"FactoryLifetime","uid":"Unity.FactoryLifetime"},{"name":"ForceActivation","uid":"Unity.ForceActivation"},{"name":"ForceCompillation","uid":"Unity.ForceCompillation"},{"name":"IContainerRegistration","uid":"Unity.IContainerRegistration"},{"name":"Inject","uid":"Unity.Inject"},{"name":"InjectionConstructorAttribute","uid":"Unity.InjectionConstructorAttribute"},{"name":"InjectionMethodAttribute","uid":"Unity.InjectionMethodAttribute"},{"name":"InstanceLifetime","uid":"Unity.InstanceLifetime"},{"name":"Invoke","uid":"Unity.Invoke"},{"name":"IUnityContainer","uid":"Unity.IUnityContainer"},{"name":"IUnityContainerAsync","uid":"Unity.IUnityContainerAsync"},{"name":"MemberSelector","uid":"Unity.MemberSelector`2","name.vb":"MemberSelector(Of TMember, TParam)"},{"name":"OptionalDependencyAttribute","uid":"Unity.OptionalDependencyAttribute"},{"name":"Override","uid":"Unity.Override"},{"name":"ResolutionFailedException","uid":"Unity.ResolutionFailedException"},{"name":"Resolve","uid":"Unity.Resolve"},{"name":"SupportedMembers","uid":"Unity.SupportedMembers"},{"name":"TypeLifetime","uid":"Unity.TypeLifetime"},{"name":"UnityContainer","uid":"Unity.UnityContainer"},{"name":"UnityContainerAsyncExtensions","uid":"Unity.UnityContainerAsyncExtensions"},{"name":"UnityContainerExtensions","uid":"Unity.UnityContainerExtensions"}]},{"name":"Unity.Builder","uid":"Unity.Builder","items":[{"name":"BuilderContext","uid":"Unity.Builder.BuilderContext"},{"name":"BuilderContext.ExecutePlanDelegate","uid":"Unity.Builder.BuilderContext.ExecutePlanDelegate"},{"name":"BuilderContext.ResolvePlanDelegate","uid":"Unity.Builder.BuilderContext.ResolvePlanDelegate"},{"name":"BuilderStage","uid":"Unity.Builder.BuilderStage"},{"name":"NamedTypeBuildKey","uid":"Unity.Builder.NamedTypeBuildKey"},{"name":"NamedTypeBuildKey","uid":"Unity.Builder.NamedTypeBuildKey`1","name.vb":"NamedTypeBuildKey(Of T)"},{"name":"SelectionStage","uid":"Unity.Builder.SelectionStage"},{"name":"UnityBuildStage","uid":"Unity.Builder.UnityBuildStage"}]},{"name":"Unity.Configuration","uid":"Unity.Configuration","items":[{"name":"AliasElement","uid":"Unity.Configuration.AliasElement"},{"name":"AliasElementCollection","uid":"Unity.Configuration.AliasElementCollection"},{"name":"ArrayElement","uid":"Unity.Configuration.ArrayElement"},{"name":"AssemblyElement","uid":"Unity.Configuration.AssemblyElement"},{"name":"AssemblyElementCollection","uid":"Unity.Configuration.AssemblyElementCollection"},{"name":"ConstructorElement","uid":"Unity.Configuration.ConstructorElement"},{"name":"ContainerConfiguringElementCollection","uid":"Unity.Configuration.ContainerConfiguringElementCollection"},{"name":"ContainerElement","uid":"Unity.Configuration.ContainerElement"},{"name":"ContainerElementCollection","uid":"Unity.Configuration.ContainerElementCollection"},{"name":"ContainerExtensionElement","uid":"Unity.Configuration.ContainerExtensionElement"},{"name":"ContainerExtensionElementCollection","uid":"Unity.Configuration.ContainerExtensionElementCollection"},{"name":"DependencyElement","uid":"Unity.Configuration.DependencyElement"},{"name":"ExtensionElementMap","uid":"Unity.Configuration.ExtensionElementMap"},{"name":"FieldElement","uid":"Unity.Configuration.FieldElement"},{"name":"IDefaultPolicy","uid":"Unity.Configuration.IDefaultPolicy"},{"name":"InjectionMemberElementCollection","uid":"Unity.Configuration.InjectionMemberElementCollection"},{"name":"InstanceElement","uid":"Unity.Configuration.InstanceElement"},{"name":"InstanceElementCollection","uid":"Unity.Configuration.InstanceElementCollection"},{"name":"LifetimeElement","uid":"Unity.Configuration.LifetimeElement"},{"name":"MethodElement","uid":"Unity.Configuration.MethodElement"},{"name":"NamespaceElement","uid":"Unity.Configuration.NamespaceElement"},{"name":"NamespaceElementCollection","uid":"Unity.Configuration.NamespaceElementCollection"},{"name":"OptionalElement","uid":"Unity.Configuration.OptionalElement"},{"name":"ParameterElement","uid":"Unity.Configuration.ParameterElement"},{"name":"ParameterElementCollection","uid":"Unity.Configuration.ParameterElementCollection"},{"name":"ParameterValueElementCollection","uid":"Unity.Configuration.ParameterValueElementCollection"},{"name":"PropertyElement","uid":"Unity.Configuration.PropertyElement"},{"name":"RegisterElement","uid":"Unity.Configuration.RegisterElement"},{"name":"RegisterElementCollection","uid":"Unity.Configuration.RegisterElementCollection"},{"name":"SectionExtensionElement","uid":"Unity.Configuration.SectionExtensionElement"},{"name":"SectionExtensionElementCollection","uid":"Unity.Configuration.SectionExtensionElementCollection"},{"name":"UnityConfigurationSection","uid":"Unity.Configuration.UnityConfigurationSection"},{"name":"UnityContainerExtensions","uid":"Unity.Configuration.UnityContainerExtensions"},{"name":"ValueElement","uid":"Unity.Configuration.ValueElement"}]},{"name":"Unity.Configuration.Abstractions","uid":"Unity.Configuration.Abstractions","items":[{"name":"ContainerConfiguringElement","uid":"Unity.Configuration.Abstractions.ContainerConfiguringElement"},{"name":"DeserializableConfigurationElement","uid":"Unity.Configuration.Abstractions.DeserializableConfigurationElement"},{"name":"DeserializableConfigurationElementCollection","uid":"Unity.Configuration.Abstractions.DeserializableConfigurationElementCollection`1","name.vb":"DeserializableConfigurationElementCollection(Of TElement)"},{"name":"DeserializableConfigurationElementCollectionBase","uid":"Unity.Configuration.Abstractions.DeserializableConfigurationElementCollectionBase`1","name.vb":"DeserializableConfigurationElementCollectionBase(Of TElement)"},{"name":"InjectionMemberElement","uid":"Unity.Configuration.Abstractions.InjectionMemberElement"},{"name":"IValueProvidingElement","uid":"Unity.Configuration.Abstractions.IValueProvidingElement"},{"name":"NamedElement","uid":"Unity.Configuration.Abstractions.NamedElement"},{"name":"ParameterValueElement","uid":"Unity.Configuration.Abstractions.ParameterValueElement"},{"name":"RegistrationElement","uid":"Unity.Configuration.Abstractions.RegistrationElement"},{"name":"SectionExtension","uid":"Unity.Configuration.Abstractions.SectionExtension"},{"name":"SectionExtensionContext","uid":"Unity.Configuration.Abstractions.SectionExtensionContext"}]},{"name":"Unity.Configuration.Collections","uid":"Unity.Configuration.Collections","items":[{"name":"RegistrationElementCollection","uid":"Unity.Configuration.Collections.RegistrationElementCollection"}]},{"name":"Unity.Configuration.ConfigurationHelpers","uid":"Unity.Configuration.ConfigurationHelpers","items":[{"name":"TypeResolver","uid":"Unity.Configuration.ConfigurationHelpers.TypeResolver"},{"name":"TypeResolverImpl","uid":"Unity.Configuration.ConfigurationHelpers.TypeResolverImpl"},{"name":"ValueElementHelper","uid":"Unity.Configuration.ConfigurationHelpers.ValueElementHelper"}]},{"name":"Unity.Configuration.Extensions","uid":"Unity.Configuration.Extensions","items":[{"name":"ConfigurationElementExtensions","uid":"Unity.Configuration.Extensions.ConfigurationElementExtensions"},{"name":"DictionaryExtensions","uid":"Unity.Configuration.Extensions.DictionaryExtensions"},{"name":"XmlWriterExtensions","uid":"Unity.Configuration.Extensions.XmlWriterExtensions"}]},{"name":"Unity.Configuration.Storage","uid":"Unity.Configuration.Storage","items":[{"name":"ElementHandlerMap","uid":"Unity.Configuration.Storage.ElementHandlerMap`1","name.vb":"ElementHandlerMap(Of TContainingElement)"}]},{"name":"Unity.Events","uid":"Unity.Events","items":[{"name":"ChildContainerCreatedEventArgs","uid":"Unity.Events.ChildContainerCreatedEventArgs"},{"name":"NamedEventArgs","uid":"Unity.Events.NamedEventArgs"},{"name":"RegisterEventArgs","uid":"Unity.Events.RegisterEventArgs"},{"name":"RegisterInstanceEventArgs","uid":"Unity.Events.RegisterInstanceEventArgs"}]},{"name":"Unity.Exceptions","uid":"Unity.Exceptions","items":[{"name":"DependencyMissingException","uid":"Unity.Exceptions.DependencyMissingException"},{"name":"IllegalInjectionMethodException","uid":"Unity.Exceptions.IllegalInjectionMethodException"}]},{"name":"Unity.Extension","uid":"Unity.Extension","items":[{"name":"IExtensionContext","uid":"Unity.Extension.IExtensionContext"},{"name":"IUnityContainerExtensionConfigurator","uid":"Unity.Extension.IUnityContainerExtensionConfigurator"},{"name":"Legacy","uid":"Unity.Extension.Legacy"},{"name":"UnityContainerExtension","uid":"Unity.Extension.UnityContainerExtension"}]},{"name":"Unity.Factories","uid":"Unity.Factories","items":[{"name":"EnumerableResolver","uid":"Unity.Factories.EnumerableResolver"}]},{"name":"Unity.Injection","uid":"Unity.Injection","items":[{"name":"GenericBase","uid":"Unity.Injection.GenericBase"},{"name":"GenericParameter","uid":"Unity.Injection.GenericParameter"},{"name":"GenericResolvedArrayParameter","uid":"Unity.Injection.GenericResolvedArrayParameter"},{"name":"Injection_ParameterValue","uid":"Unity.Injection.Injection_ParameterValue"},{"name":"InjectionConstructor","uid":"Unity.Injection.InjectionConstructor"},{"name":"InjectionField","uid":"Unity.Injection.InjectionField"},{"name":"InjectionMatching","uid":"Unity.Injection.InjectionMatching"},{"name":"InjectionMember","uid":"Unity.Injection.InjectionMember"},{"name":"InjectionMember","uid":"Unity.Injection.InjectionMember`2","name.vb":"InjectionMember(Of TMemberInfo, TData)"},{"name":"InjectionMethod","uid":"Unity.Injection.InjectionMethod"},{"name":"InjectionParameter","uid":"Unity.Injection.InjectionParameter"},{"name":"InjectionParameter","uid":"Unity.Injection.InjectionParameter`1","name.vb":"InjectionParameter(Of TParameter)"},{"name":"InjectionProperty","uid":"Unity.Injection.InjectionProperty"},{"name":"MemberInfoBase","uid":"Unity.Injection.MemberInfoBase`1","name.vb":"MemberInfoBase(Of TMemberInfo)"},{"name":"MethodBase","uid":"Unity.Injection.MethodBase`1","name.vb":"MethodBase(Of TMemberInfo)"},{"name":"OptionalGenericParameter","uid":"Unity.Injection.OptionalGenericParameter"},{"name":"OptionalParameter","uid":"Unity.Injection.OptionalParameter"},{"name":"OptionalParameter","uid":"Unity.Injection.OptionalParameter`1","name.vb":"OptionalParameter(Of T)"},{"name":"ParameterBase","uid":"Unity.Injection.ParameterBase"},{"name":"ParameterValue","uid":"Unity.Injection.ParameterValue"},{"name":"ResolvedArrayParameter","uid":"Unity.Injection.ResolvedArrayParameter"},{"name":"ResolvedArrayParameter","uid":"Unity.Injection.ResolvedArrayParameter`1","name.vb":"ResolvedArrayParameter(Of TElement)"},{"name":"ResolvedParameter","uid":"Unity.Injection.ResolvedParameter"},{"name":"ResolvedParameter","uid":"Unity.Injection.ResolvedParameter`1","name.vb":"ResolvedParameter(Of TParameter)"},{"name":"Typed_InjectionValue","uid":"Unity.Injection.Typed_InjectionValue"}]},{"name":"Unity.Lifetime","uid":"Unity.Lifetime","items":[{"name":"ContainerControlledLifetimeManager","uid":"Unity.Lifetime.ContainerControlledLifetimeManager"},{"name":"ContainerControlledTransientManager","uid":"Unity.Lifetime.ContainerControlledTransientManager"},{"name":"ExternallyControlledLifetimeManager","uid":"Unity.Lifetime.ExternallyControlledLifetimeManager"},{"name":"HierarchicalLifetimeManager","uid":"Unity.Lifetime.HierarchicalLifetimeManager"},{"name":"IFactoryLifetimeManager","uid":"Unity.Lifetime.IFactoryLifetimeManager"},{"name":"IInstanceLifetimeManager","uid":"Unity.Lifetime.IInstanceLifetimeManager"},{"name":"ILifetimeContainer","uid":"Unity.Lifetime.ILifetimeContainer"},{"name":"ITypeLifetimeManager","uid":"Unity.Lifetime.ITypeLifetimeManager"},{"name":"LifetimeContainer","uid":"Unity.Lifetime.LifetimeContainer"},{"name":"LifetimeManager","uid":"Unity.Lifetime.LifetimeManager"},{"name":"LifetimeManager.InvalidValue","uid":"Unity.Lifetime.LifetimeManager.InvalidValue"},{"name":"PerResolveLifetimeManager","uid":"Unity.Lifetime.PerResolveLifetimeManager"},{"name":"PerThreadLifetimeManager","uid":"Unity.Lifetime.PerThreadLifetimeManager"},{"name":"SingletonLifetimeManager","uid":"Unity.Lifetime.SingletonLifetimeManager"},{"name":"SynchronizedLifetimeManager","uid":"Unity.Lifetime.SynchronizedLifetimeManager"},{"name":"TransientLifetimeManager","uid":"Unity.Lifetime.TransientLifetimeManager"}]},{"name":"Unity.ObjectBuilder.BuildPlan.DynamicMethod","uid":"Unity.ObjectBuilder.BuildPlan.DynamicMethod","items":[{"name":"DynamicBuildPlanGenerationContext","uid":"Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicBuildPlanGenerationContext"}]},{"name":"Unity.Policy","uid":"Unity.Policy","items":[{"name":"DefaultPolicies","uid":"Unity.Policy.DefaultPolicies"},{"name":"IBuildPlanCreatorPolicy","uid":"Unity.Policy.IBuildPlanCreatorPolicy"},{"name":"IBuildPlanPolicy","uid":"Unity.Policy.IBuildPlanPolicy"},{"name":"IPolicyList","uid":"Unity.Policy.IPolicyList"},{"name":"IPolicySet","uid":"Unity.Policy.IPolicySet"},{"name":"IResolveDelegateFactory","uid":"Unity.Policy.IResolveDelegateFactory"},{"name":"PolicySetExtensions","uid":"Unity.Policy.PolicySetExtensions"},{"name":"ResolveDelegateFactory","uid":"Unity.Policy.ResolveDelegateFactory"}]},{"name":"Unity.Processors","uid":"Unity.Processors","items":[{"name":"ConstructorDiagnostic","uid":"Unity.Processors.ConstructorDiagnostic"},{"name":"ConstructorProcessor","uid":"Unity.Processors.ConstructorProcessor"},{"name":"FieldDiagnostic","uid":"Unity.Processors.FieldDiagnostic"},{"name":"FieldProcessor","uid":"Unity.Processors.FieldProcessor"},{"name":"MemberProcessor","uid":"Unity.Processors.MemberProcessor"},{"name":"MemberProcessor","uid":"Unity.Processors.MemberProcessor`2","name.vb":"MemberProcessor(Of TMemberInfo, TData)"},{"name":"MethodDiagnostic","uid":"Unity.Processors.MethodDiagnostic"},{"name":"MethodProcessor","uid":"Unity.Processors.MethodProcessor"},{"name":"ParametersProcessor","uid":"Unity.Processors.ParametersProcessor`1","name.vb":"ParametersProcessor(Of TMemberInfo)"},{"name":"PropertyDiagnostic","uid":"Unity.Processors.PropertyDiagnostic"},{"name":"PropertyProcessor","uid":"Unity.Processors.PropertyProcessor"}]},{"name":"Unity.Registration","uid":"Unity.Registration","items":[{"name":"ContainerRegistration","uid":"Unity.Registration.ContainerRegistration"},{"name":"InternalRegistration","uid":"Unity.Registration.InternalRegistration"}]},{"name":"Unity.Resolution","uid":"Unity.Resolution","items":[{"name":"DependencyOverride","uid":"Unity.Resolution.DependencyOverride"},{"name":"DependencyOverride","uid":"Unity.Resolution.DependencyOverride`1","name.vb":"DependencyOverride(Of T)"},{"name":"FieldOverride","uid":"Unity.Resolution.FieldOverride"},{"name":"IResolve","uid":"Unity.Resolution.IResolve"},{"name":"IResolveContext","uid":"Unity.Resolution.IResolveContext"},{"name":"IResolverFactory","uid":"Unity.Resolution.IResolverFactory`1","name.vb":"IResolverFactory(Of TMemberInfo)"},{"name":"NamedType","uid":"Unity.Resolution.NamedType"},{"name":"ParameterOverride","uid":"Unity.Resolution.ParameterOverride"},{"name":"ParameterOverrides","uid":"Unity.Resolution.ParameterOverrides"},{"name":"PropertyOverride","uid":"Unity.Resolution.PropertyOverride"},{"name":"ResolveDelegate","uid":"Unity.Resolution.ResolveDelegate`1","name.vb":"ResolveDelegate(Of TContext)"},{"name":"ResolverFactory","uid":"Unity.Resolution.ResolverFactory`1","name.vb":"ResolverFactory(Of TContext)"},{"name":"ResolverOverride","uid":"Unity.Resolution.ResolverOverride"},{"name":"TypeBasedOverride","uid":"Unity.Resolution.TypeBasedOverride"},{"name":"TypeBasedOverride","uid":"Unity.Resolution.TypeBasedOverride`1","name.vb":"TypeBasedOverride(Of T)"}]},{"name":"Unity.Selection","uid":"Unity.Selection","items":[{"name":"ConstructorSelection","uid":"Unity.Selection.ConstructorSelection"},{"name":"SelectionStage","uid":"Unity.Selection.SelectionStage"},{"name":"SelectorDelegate","uid":"Unity.Selection.SelectorDelegate`3","name.vb":"SelectorDelegate(Of TMember, TParam, TReturn)"}]},{"name":"Unity.Storage","uid":"Unity.Storage","items":[{"name":"IRegistry","uid":"Unity.Storage.IRegistry`2","name.vb":"IRegistry(Of TKey, TValue)"},{"name":"IStagedStrategyChain","uid":"Unity.Storage.IStagedStrategyChain`2","name.vb":"IStagedStrategyChain(Of TStrategyType, TStageEnum)"},{"name":"LinkedNode","uid":"Unity.Storage.LinkedNode`2","name.vb":"LinkedNode(Of TKey, TValue)"},{"name":"PolicyEntry","uid":"Unity.Storage.PolicyEntry"},{"name":"PolicyList","uid":"Unity.Storage.PolicyList"},{"name":"PolicySet","uid":"Unity.Storage.PolicySet"},{"name":"PolicySet.Policy","uid":"Unity.Storage.PolicySet.Policy"},{"name":"PolicySet.PolicySetDebugProxy","uid":"Unity.Storage.PolicySet.PolicySetDebugProxy"},{"name":"QuickSet","uid":"Unity.Storage.QuickSet`1","name.vb":"QuickSet(Of TValue)"},{"name":"RegistrationSet","uid":"Unity.Storage.RegistrationSet"},{"name":"RegistrationSet.Entry","uid":"Unity.Storage.RegistrationSet.Entry"},{"name":"StagedStrategyChain","uid":"Unity.Storage.StagedStrategyChain`2","name.vb":"StagedStrategyChain(Of TStrategyType, TStageEnum)"},{"name":"StagedStrategyChainExtensions","uid":"Unity.Storage.StagedStrategyChainExtensions"}]},{"name":"Unity.Strategies","uid":"Unity.Strategies","items":[{"name":"ArrayResolveStrategy","uid":"Unity.Strategies.ArrayResolveStrategy"},{"name":"BuilderStrategy","uid":"Unity.Strategies.BuilderStrategy"},{"name":"BuildKeyMappingStrategy","uid":"Unity.Strategies.BuildKeyMappingStrategy"},{"name":"BuildPlanStrategy","uid":"Unity.Strategies.BuildPlanStrategy"},{"name":"LifetimeStrategy","uid":"Unity.Strategies.LifetimeStrategy"}]}]} \ No newline at end of file diff --git a/_site/articles/application/index.html b/_site/articles/application/index.html deleted file mode 100644 index 2d40d78..0000000 --- a/_site/articles/application/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Features such as inversion of control, dependency injection, interception, factory, and lifetime provide several major advantages when building applications that consist of many individual classes and components. Designing applications that conform to these patterns can provide numerous benefits:

\n
    \n
  • Decoupling service providers from service consumers
  • \n
  • Runtime as well as design time configuration of services and dependencies
  • \n
  • Ability to substitute one component for another.
  • \n
  • Centralization and abstraction of crosscutting concerns (logging, authentication, caching, and etc).
  • \n
  • Advanced lifetime management of components and services.
  • \n
  • Simplified testability for individual components and sections of the application.
  • \n
  • Simplified overall design, with faster and less error-prone development.
  • \n
  • Improved reusability of components within other applications.
  • \n
\n

Unity provides a comprehensive dependency injection and interception platform, and is easy to incorporate into your applications. However, it does change the way that you design these applications. The following sections of this topic describe areas where dependency injection is useful:

\n
    \n
  • Pluggable Architectures
  • \n
  • Managing Crosscutting Concerns
  • \n
  • Service and Component Location
  • \n
  • Policy Injection through Interception
  • \n
\n

Pluggable Architectures

\n

By designing applications to use a pluggable architecture, developers and users can add and modify the functionality of an application without changing the core code or processes. ASP.NET is an example of a pluggable architecture, where you can add and remove providers for features such as authentication, caching, and session management. Unity also facilitates a pluggable architecture that allows you to substitute the container for one of your own design and add extensions through the container extensions architecture.

\n

By using dependency injection mechanisms, such as Unity container, developers can map different components that implement a specific interface (such as a provider interface) or that inherit from a specific base class to the appropriate concrete implementations. Developers can then obtain a reference to the appropriate provider component at run time, without having to specify exactly which implementation of the component is required. The following sections of this topic, Managing Crosscutting Concerns and Service and Component Location, show how you can use dependency injection to create instances of a specific class based on a request for a more general class (such as an interface or base class definition).

\n

In addition, the providers may require instances of other components. For example, a caching provider may need to use the services of a cryptography component or service. When components require the services of other components, you can use dependency injection to automatically instantiate and inject instances of these components into a component, based on either configuration settings in the container or on code within the application.

\n

For more information about how you can use dependency injection in this way, see Using Injection Attributes.

\n

Managing Crosscutting Concerns

\n

The features and tasks implemented in applications are often referred to as concerns. The tasks specific to the application are core concerns. The tasks that are common across many parts of the application, and even across different applications, are crosscutting concerns. Most large applications require services such as logging, caching, validation, and authorization, and these are crosscutting concerns.

\n

The simplest way to centralize these features is to build separate components that implement each of the required features, and then use these components wherever the management of that concern is required—in one or more applications. By using dependency injection mechanisms, such as a Unity container, developers can register components that implement crosscutting concerns and then obtain a reference to the component at run time, without having to specify exactly which implementation of the component is required.

\n

For example, if you have a component named FileLogger that performs logging tasks, your application can instantiate this component using the new operator, as shown in the following code.

\n
FileLogger myLogger = new FileLogger();\n
\n

If you then want to change the application to use the new component, FastFileLogger, you must change the application code. However, if you have an interface ILogger that all implementations of the logging component uses, you might instead write the code like the following.

\n
ILogger myLogger = new FileLogger();\n
\n

However, this does not solve the problem because you still must find everywhere in the code where you used new() to create an instance of the specific class. Instead, you can use a dependency injection mechanism to map the ILogger interface to a specific concrete instance of the logging component, or even to multiple implementations, so that the application can specify which one it requires. The following code uses Unity to register a mapping for both a default type of logging component and a named type with the ILogger interface. Alternatively, you can specify these mappings using the Unity configuration file.

\n
// Create container and register types\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<ILogger, FileLogger>();       // default instance\nmyContainer.RegisterType<ILogger, FastFileLogger>("FastLogger");\n
\n

The application can then obtain a reference to the default logging component using the following code.

\n
ILogger myLogger = myContainer.Resolve<ILogger>();\n
\n

In addition, the application can use a variable (perhaps set in configuration or at run time) to specify a different implementation of the logging component interface as required, as shown in the following code.

\n
// Retrieve logger type name from configuration\nString loggerName = ConfigurationManager.AppSettings["LoggerName"].ToString();\nILogger myLogger = myContainer.Resolve<ILogger>(loggerName);\n
\n

For more information about registering types, type mappings, and resolving instances, see Resolving Objects.

\n

Service and Component Location

\n

Frequently, applications require the use of services or components that are specific to the application; examples are business logic components, data access components, interface components, and process controllers. In some cases, these services may be instance-based, so that each section of the application or each task requires a separate individual instance of the service. However, it is also common for services to be singleton-based, so that every user of the service references the same single instance of the service.

\n

A service location facility makes it easy for an application to obtain a reference to a service or component, without having to specify where to look for the specific service or whether it is a singleton-based or an instance-based service. By using dependency injection mechanisms, such as the Unity container, developers can register services in the appropriate way and then obtain a reference to the service at run time, without having to specify exactly which implementation of the service is required or what type of instance it actually is.

\n

For example, if you have a singleton service class named CustomerData that you interact with to read and update information for any customer, your application obtains a reference to this service usually by calling a static GetInstance method of the service (which ensures that it is a singleton and that only one instance can exist), as shown in the following code.

\n
CustomerData cData = CustomerData.GetInstance();\n
\n

Instead, you can use the Unity container to set the CustomerData class type with a specific lifetime that ensures it behaves as a singleton so that every request for the service returns the same instance, as shown in the following code. Alternatively, you could specify these mappings using the Unity configuration file.

\n
// Create container and register type as a singleton instance\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<CustomerData>(new ContainerControlledLifetimeManager());\n
\n

The application can then obtain a reference to the single instance of the CustomerData service using the following code. If the instance does not yet exist, the container creates it.

\n
CustomerData cData = myContainer.Resolve<CustomerData>();\n
\n

In addition, perhaps a new CustomerFile component you decide to use in your application inherits the same base class named CustomerAccessBase as the CustomerData service, but it is not a singleton—instead, it requires that your application instantiate an instance for each customer. In this case, you can specify mapping names when you register one component as a singleton type and one component as an instance type (with the default transient lifetime), and then use the same application code to retrieve the required instance.

\n

For example, the following code shows how you can register two named mappings for objects that inherit from the same base class, then—at run time—collect a string value from elsewhere in the application configuration that specifies which of the mappings to use. In this case, the value comes from the AppSettings section of the configuration file. If the value with the key CustomerService contains CustomerDataService, the code returns an instance of the CustomerData class. If it contains the value CustomerFileService, the code returns an instance of the CustomerFile class.

\n
IUnityContainer myContainer = new UnityContainer();\n// Register CustomerData type as a singleton instance\nmyContainer.RegisterType<CustomerAccessBase, CustomerData>("CustomerDataService", \n                        new ContainerControlledLifetimeManager());\n// Register CustomerFile type with the default transient lifetime\nmyContainer.RegisterType<CustomerAccessBase, CustomerFile>("CustomerFileService");\n...\nString serviceName = ConfigurationManager.AppSettings["CustomerService"].ToString();\nCustomerAccessBase cData \n  = (CustomerAccessBase)myContainer.Resolve<CustomerAccessBase>(serviceName);\n
\n

For more information about registering types, type mappings, and resolving instances, see Resolving Objects. For more information about using lifetime managers to control the creation, lifetime, and disposal of objects, see Understanding Lifetime Managers.

\n

Policy Injection through Interception

\n

Unity interception with its built-in policy injection module enables you to effectively capture calls to objects you resolve through the Unity DI container, and apply a policy that adds additional functionality to the target object. Typically, you will use this technique to change the behavior of existing objects, or to implement the management of crosscutting concerns through reusable handlers. You can specify how to match the target object using a wide range of matching rules, and construct a policy pipeline that contains one or more call handlers.

\n

Calls to the intercepted methods or properties of the target object then pass through the call handlers in the order you add them to the pipeline, and return through them in the reverse order. Your call handlers can access the values in the call, change these values, and control execution of the call. For example, the call handlers might authorize users, validate parameter values, cache the return value, and shortcut execution so that the target method does not actually execute where this is appropriate.

\n

You can configure Unity for policy injection by using a configuration file at design time, see Configuring Policy Injection Policies, or by using the API at run time, see Registering Policy Injection Components.

\n

The following example uses the Unity API to demonstrate how you can configure Unity to perform interception on a target object, using a policy that contains a logging handler and a validation handler. Notice that the logging handler is added first, so that it will log calls even if validation fails and the validation handler shortcuts the pipeline instead of calling the method of the target object. You can use the streamlined policy definition API provided by the Unity interception container extension to configure the container at run time or you can specify the same behavior at design time by using a configuration file. For an example using the API, see Registering Policy Injection Components. For a design time example, see Configuration Files for Interception.

\n
// Create a container and add the interception extension.\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.AddNewExtension<Interception>();\n\n// Configure the container with a policy named MyPolicy\n// that uses a TypeMatchingRule to match a custom class\n// and adds a logging handler and a validation handler\n// to the handler pipeline. You must specify at least one\n// matching rule or the policy will not be applied.\nmyContainer.Configure<Interception>()\n    .AddPolicy("MyPolicy")\n         .AddMatchingRule<TypeMatchingRule>(\n                  new InjectionConstructor("MyCustomType"))\n         .AddCallHandler(typeof(MyLoggingCallHandler))\n         .AddCallHandler(typeof(MyValidationCallHandler));\n\n// Configure the container to intercept calls to the\n// custom class using a TransparentProxyInterceptor.\nmyContainer.RegisterType<MyCustomType>("myType",\n    new Interceptor<TransparentProxyInterceptor>(),\n    new InterceptionBehavior<PolicyInjectionBehavior>());\n\n\n// Resolve the custom type through the container when\n// you are ready to use it. When you call a method or\n// set a property on it, the call will pass through\n// the logging handler and the validation handler.\nMyCustomType myNewInstance = myContainer.Resolve<MyCustomType>("myType");\n
\n

For more information about interception and policy injection, see Using Interception and Policy Injection.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/4/2019","updated_at_date_time":"2019-03-04T02:14:05Z"},"_path":"articles/application/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/application/","conceptual":"\n

Features such as inversion of control, dependency injection, interception, factory, and lifetime provide several major advantages when building applications that consist of many individual classes and components. Designing applications that conform to these patterns can provide numerous benefits:

\n
    \n
  • Decoupling service providers from service consumers
  • \n
  • Runtime as well as design time configuration of services and dependencies
  • \n
  • Ability to substitute one component for another.
  • \n
  • Centralization and abstraction of crosscutting concerns (logging, authentication, caching, and etc).
  • \n
  • Advanced lifetime management of components and services.
  • \n
  • Simplified testability for individual components and sections of the application.
  • \n
  • Simplified overall design, with faster and less error-prone development.
  • \n
  • Improved reusability of components within other applications.
  • \n
\n

Unity provides a comprehensive dependency injection and interception platform, and is easy to incorporate into your applications. However, it does change the way that you design these applications. The following sections of this topic describe areas where dependency injection is useful:

\n
    \n
  • Pluggable Architectures
  • \n
  • Managing Crosscutting Concerns
  • \n
  • Service and Component Location
  • \n
  • Policy Injection through Interception
  • \n
\n

Pluggable Architectures

\n

By designing applications to use a pluggable architecture, developers and users can add and modify the functionality of an application without changing the core code or processes. ASP.NET is an example of a pluggable architecture, where you can add and remove providers for features such as authentication, caching, and session management. Unity also facilitates a pluggable architecture that allows you to substitute the container for one of your own design and add extensions through the container extensions architecture.

\n

By using dependency injection mechanisms, such as Unity container, developers can map different components that implement a specific interface (such as a provider interface) or that inherit from a specific base class to the appropriate concrete implementations. Developers can then obtain a reference to the appropriate provider component at run time, without having to specify exactly which implementation of the component is required. The following sections of this topic, Managing Crosscutting Concerns and Service and Component Location, show how you can use dependency injection to create instances of a specific class based on a request for a more general class (such as an interface or base class definition).

\n

In addition, the providers may require instances of other components. For example, a caching provider may need to use the services of a cryptography component or service. When components require the services of other components, you can use dependency injection to automatically instantiate and inject instances of these components into a component, based on either configuration settings in the container or on code within the application.

\n

For more information about how you can use dependency injection in this way, see Using Injection Attributes.

\n

Managing Crosscutting Concerns

\n

The features and tasks implemented in applications are often referred to as concerns. The tasks specific to the application are core concerns. The tasks that are common across many parts of the application, and even across different applications, are crosscutting concerns. Most large applications require services such as logging, caching, validation, and authorization, and these are crosscutting concerns.

\n

The simplest way to centralize these features is to build separate components that implement each of the required features, and then use these components wherever the management of that concern is required—in one or more applications. By using dependency injection mechanisms, such as a Unity container, developers can register components that implement crosscutting concerns and then obtain a reference to the component at run time, without having to specify exactly which implementation of the component is required.

\n

For example, if you have a component named FileLogger that performs logging tasks, your application can instantiate this component using the new operator, as shown in the following code.

\n
FileLogger myLogger = new FileLogger();\n
\n

If you then want to change the application to use the new component, FastFileLogger, you must change the application code. However, if you have an interface ILogger that all implementations of the logging component uses, you might instead write the code like the following.

\n
ILogger myLogger = new FileLogger();\n
\n

However, this does not solve the problem because you still must find everywhere in the code where you used new() to create an instance of the specific class. Instead, you can use a dependency injection mechanism to map the ILogger interface to a specific concrete instance of the logging component, or even to multiple implementations, so that the application can specify which one it requires. The following code uses Unity to register a mapping for both a default type of logging component and a named type with the ILogger interface. Alternatively, you can specify these mappings using the Unity configuration file.

\n
// Create container and register types\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<ILogger, FileLogger>();       // default instance\nmyContainer.RegisterType<ILogger, FastFileLogger>("FastLogger");\n
\n

The application can then obtain a reference to the default logging component using the following code.

\n
ILogger myLogger = myContainer.Resolve<ILogger>();\n
\n

In addition, the application can use a variable (perhaps set in configuration or at run time) to specify a different implementation of the logging component interface as required, as shown in the following code.

\n
// Retrieve logger type name from configuration\nString loggerName = ConfigurationManager.AppSettings["LoggerName"].ToString();\nILogger myLogger = myContainer.Resolve<ILogger>(loggerName);\n
\n

For more information about registering types, type mappings, and resolving instances, see Resolving Objects.

\n

Service and Component Location

\n

Frequently, applications require the use of services or components that are specific to the application; examples are business logic components, data access components, interface components, and process controllers. In some cases, these services may be instance-based, so that each section of the application or each task requires a separate individual instance of the service. However, it is also common for services to be singleton-based, so that every user of the service references the same single instance of the service.

\n

A service location facility makes it easy for an application to obtain a reference to a service or component, without having to specify where to look for the specific service or whether it is a singleton-based or an instance-based service. By using dependency injection mechanisms, such as the Unity container, developers can register services in the appropriate way and then obtain a reference to the service at run time, without having to specify exactly which implementation of the service is required or what type of instance it actually is.

\n

For example, if you have a singleton service class named CustomerData that you interact with to read and update information for any customer, your application obtains a reference to this service usually by calling a static GetInstance method of the service (which ensures that it is a singleton and that only one instance can exist), as shown in the following code.

\n
CustomerData cData = CustomerData.GetInstance();\n
\n

Instead, you can use the Unity container to set the CustomerData class type with a specific lifetime that ensures it behaves as a singleton so that every request for the service returns the same instance, as shown in the following code. Alternatively, you could specify these mappings using the Unity configuration file.

\n
// Create container and register type as a singleton instance\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<CustomerData>(new ContainerControlledLifetimeManager());\n
\n

The application can then obtain a reference to the single instance of the CustomerData service using the following code. If the instance does not yet exist, the container creates it.

\n
CustomerData cData = myContainer.Resolve<CustomerData>();\n
\n

In addition, perhaps a new CustomerFile component you decide to use in your application inherits the same base class named CustomerAccessBase as the CustomerData service, but it is not a singleton—instead, it requires that your application instantiate an instance for each customer. In this case, you can specify mapping names when you register one component as a singleton type and one component as an instance type (with the default transient lifetime), and then use the same application code to retrieve the required instance.

\n

For example, the following code shows how you can register two named mappings for objects that inherit from the same base class, then—at run time—collect a string value from elsewhere in the application configuration that specifies which of the mappings to use. In this case, the value comes from the AppSettings section of the configuration file. If the value with the key CustomerService contains CustomerDataService, the code returns an instance of the CustomerData class. If it contains the value CustomerFileService, the code returns an instance of the CustomerFile class.

\n
IUnityContainer myContainer = new UnityContainer();\n// Register CustomerData type as a singleton instance\nmyContainer.RegisterType<CustomerAccessBase, CustomerData>("CustomerDataService", \n                        new ContainerControlledLifetimeManager());\n// Register CustomerFile type with the default transient lifetime\nmyContainer.RegisterType<CustomerAccessBase, CustomerFile>("CustomerFileService");\n...\nString serviceName = ConfigurationManager.AppSettings["CustomerService"].ToString();\nCustomerAccessBase cData \n  = (CustomerAccessBase)myContainer.Resolve<CustomerAccessBase>(serviceName);\n
\n

For more information about registering types, type mappings, and resolving instances, see Resolving Objects. For more information about using lifetime managers to control the creation, lifetime, and disposal of objects, see Understanding Lifetime Managers.

\n

Policy Injection through Interception

\n

Unity interception with its built-in policy injection module enables you to effectively capture calls to objects you resolve through the Unity DI container, and apply a policy that adds additional functionality to the target object. Typically, you will use this technique to change the behavior of existing objects, or to implement the management of crosscutting concerns through reusable handlers. You can specify how to match the target object using a wide range of matching rules, and construct a policy pipeline that contains one or more call handlers.

\n

Calls to the intercepted methods or properties of the target object then pass through the call handlers in the order you add them to the pipeline, and return through them in the reverse order. Your call handlers can access the values in the call, change these values, and control execution of the call. For example, the call handlers might authorize users, validate parameter values, cache the return value, and shortcut execution so that the target method does not actually execute where this is appropriate.

\n

You can configure Unity for policy injection by using a configuration file at design time, see Configuring Policy Injection Policies, or by using the API at run time, see Registering Policy Injection Components.

\n

The following example uses the Unity API to demonstrate how you can configure Unity to perform interception on a target object, using a policy that contains a logging handler and a validation handler. Notice that the logging handler is added first, so that it will log calls even if validation fails and the validation handler shortcuts the pipeline instead of calling the method of the target object. You can use the streamlined policy definition API provided by the Unity interception container extension to configure the container at run time or you can specify the same behavior at design time by using a configuration file. For an example using the API, see Registering Policy Injection Components. For a design time example, see Configuration Files for Interception.

\n
// Create a container and add the interception extension.\nIUnityContainer myContainer = new UnityContainer();\nmyContainer.AddNewExtension<Interception>();\n\n// Configure the container with a policy named MyPolicy\n// that uses a TypeMatchingRule to match a custom class\n// and adds a logging handler and a validation handler\n// to the handler pipeline. You must specify at least one\n// matching rule or the policy will not be applied.\nmyContainer.Configure<Interception>()\n    .AddPolicy("MyPolicy")\n         .AddMatchingRule<TypeMatchingRule>(\n                  new InjectionConstructor("MyCustomType"))\n         .AddCallHandler(typeof(MyLoggingCallHandler))\n         .AddCallHandler(typeof(MyValidationCallHandler));\n\n// Configure the container to intercept calls to the\n// custom class using a TransparentProxyInterceptor.\nmyContainer.RegisterType<MyCustomType>("myType",\n    new Interceptor<TransparentProxyInterceptor>(),\n    new InterceptionBehavior<PolicyInjectionBehavior>());\n\n\n// Resolve the custom type through the container when\n// you are ready to use it. When you call a method or\n// set a property on it, the call will pass through\n// the logging handler and the validation handler.\nMyCustomType myNewInstance = myContainer.Resolve<MyCustomType>("myType");\n
\n

For more information about interception and policy injection, see Using Interception and Policy Injection.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/application.md","depot_name":".","document_id":"2f0a617d-9eaf-6117-88ac-584be21485aa","document_version_independent_id":"c37f1880-64cb-c594-2a5c-a9c15ec1b0e8","gitcommit":"https://github.com/unitycontainer/documentation/blob/a08c5cd38778dbc7606660e730b63c1a6800daf1/articles/application.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/application.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/application.md","rawTitle":"

Application Design Concepts with Unity

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Application Design Concepts with Unity","uid":"Article.Application.Design","updated_at":"2019-03-04 02:14 AM","wordCount":1920},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/changelog/index.html b/_site/articles/changelog/index.html deleted file mode 100644 index 3776195..0000000 --- a/_site/articles/changelog/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

This document contains a list of breaking changes and noteworthy issues. At this time the list is not complete. If you discover an issue while upgrading that is not covered here please open an issue or, preferably, issue a pull request. You can clone the wiki to do that.

\n

Some breaking changes are currently documented in the issue tracker only. Again, please report any such findings by commenting on the issue.

\n

Upgrading to Unity 5.9.x

\n

Starting with version 5.9.0 Unity package will only contain Unity.Abstractions and Unity.Container packages.

\n

All other packages will be available as individual NuGet packages

\n

Breaking change

\n

Some extension methods have been moved out of the Unity nuget package and have been moved into their own individual packages.

\n

For example, the following code will no longer work

\n
Container = new UnityContainer();\nContainer.LoadConfiguration();\n
\n

You will receive an error that the namespace Microsoft.Practices.Unity.Configuration no longer exists in your using statements.

\n

The Fix

\n

To fix this and similar problems, add the required nuget packages separately.

\n

For the example above, add nuget package Unity.Configuration

\n

This wiki created with help from quintonn

\n

Upgrading to Unity 5.8.x

\n

Unity 5.8.0 adds support for nesting generic types when resolving collections (arrays and enumerables).

\n

Problem

\n

Unity has build in support for IEnumerable<>, Array ( type[] ), Func<>, and Lazy<>. Theoretically it should be able to recognize these types and properly resolve them individually and in combination. Unfortunately it did not do so. For example if you registered several interfaces like this:

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n
\n

resolving enumerable in combination with generic will resolve incorrectly:

\n
Resolve<Lazy<IEnumenrable<type>>>  - resolve correctly\nResolve<IEnumenrable<Lazy<type>>>  - resolve empty\n
\n

The Fix

\n

Release v5.8.0 fixes resolution of collections of generic and array types and Lazy collections of items. This will now work fine:

\n
Resolve<Lazy<IEnumenrable<type>>>\nResolve<IEnumenrable<Lazy<type>>>\n\nResolve<Lazy<type[]>>\nResolve<Lazy<type>[]>\n\nResolve<IEnumerable<Lazy<Func<IService>>>>()\nResolve<IEnumerable<Func<Lazy<IService>>>>()\n\nResolve<Lazy<Func<IService>>[]>()\nResolve<Func<Lazy<IService>>[]>()\n
\n

The logic behind resolving collections is to find type to enumerate and get all registrations for it no matter how deep in generics tree. Enumerated type could be:

\n
    \n
  • Non generic (Constructed Generic) type
  • \n
  • Explicitly registered type
  • \n
\n

So, in this example

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n\nResolve<IEnumerable<Func<Lazy<IService>>>>();\n
\n

Unity will recognize IService as registered type and enumerate four instances of Func<Lazy<IService>>.

\n

But if you look at this example:

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n\nRegisterType(typeof(IFoo<>), typeof(Foo<>));  <-- note this registraton\n\nResolve<IEnumerable<IFoo<IService>>>();\n
\n

Returned result is different! Adding registration for IFoo changes enumerable type to IFoo. This resolution will only return one item.

\n

Breaking change

\n

Sometimes you do want Unity to ignore a generic when it resolves collections similar to how it deals with Lazy and Func. Suppose in example above you want Unity to resolve all four of IService instances wrapped in IFoo.\nTo do so you would have to make IFoo<> a Built-In type of the container.

\n

It could be simply done by creating either IBuildPlanCreatorPolicy or IBuildPlanPolicy factories.\nThere are just a few steps you need to follow:

\n\n

For examples of how it should be done please follow this link.

\n

Upgrading to Unity 5.2.1

\n

This release fundamentally changes how types are registered with Unity. The rationale behind this change is this issue.

\n

The problem

\n

To explain the problem please look at this example. Prior to this release registering singleton ILogger service like this:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager(), new InjectionConstructor());\n
\n

would create two registrations:

\n
    \n
  1. A mapping between ILogger to MockLogger
  2. \n
  3. A singleton registration for MockLogger with default constructor.
  4. \n
\n

Calling container.Resolve<ILogger>() resolves singleton instance of MockLogger as expected, and resolving type MockLogger container.Resolve<MockLogger>() would resolve the same instance of MockLogger. Both ContainerControlledLifetimeManager and InjectionConstructor would be associated with MockLogger registration.

\n

Suppose you want to resolve a new MockLogger whenever it is resolved directly like this container.Resolve<MockLogger>(). To do so you would create another registration just for the MockLogger:

\n
container.RegisterType<MockLogger>(new TransientLifetimeManager());\n
\n

So, now when you call container.Resolve<MockLogger>() it resolves new instance of the MockLogger class and uses constructor with longest list of parameters. All is well and as expected. But now if you try to resolve container.Resolve<ILogger>() it is no longer returns singleton instance of the MockLogger. Now it also returns new MockLogger created with constructor with longest list of parameters.\nThe subsequent registration overwritten all information associated with ILogger.

\n

The solution

\n

Release 5.2.1 fixes this behavior. Now all information passed to Unity during registration is stored with FromType instead of ToType. So registering type like this:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager(), new InjectionConstructor());\n
\n

creates just one registration ILogger and associates LifetimeManager and all provided InjectionMemebers with it. At this point MockLogger is still unregistered.

\n

So, think about it as a RegisteredType and MappedTo type. If you look at initial example:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager());\n
\n

ILogger - is a registered type and ContainerControlledLifetimeManager is associated with this type, as well as any InjectionMembers you provide during registration.

\n

Breaking changes

\n

This release breaks a lot of registrations. Anything relaying on TypeTo being registered in mappings will fail. For example:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager());\n\nAssert.AreSame( container.Resolve<ILogger>(), container.Resolve<MockLogger>()) <-- Will fail now\n
\n

This could be easily fixed by slightly modifying how types are registered. If you want TypeTo to be available independently you could register it like this:

\n
container.RegisterType<MockLogger>(new ContainerControlledLifetimeManager());\ncontainer.RegisterType<ILogger, MockLogger>();\n\nAssert.AreSame( container.Resolve<ILogger>(), container.Resolve<MockLogger>()) <-- Passes\n
\n

This applies to anything you registering with the type: factories, injection members, interceptors, etc.

\n

Fixing

\n

With some creative searching and sorting these breaking registrations could be identified statically, without running the code. The key is to look for registrations with same TypeTo type. If you see multiple registrations registering same type as implementation type and at least one of them has non transient lifetime it is a good indicator that it might fail after update:

\n
container.RegisterType<ILogger, Logger>(new ContainerControlledLifetimeManager());\n...\ncontainer.RegisterType<IOtherLogger, Logger>();\n
\n

To fix just add individual registration for implementation type with proper lifetime manager like so:

\n
container.RegisterType<Logger>(new ContainerControlledLifetimeManager());\n...\ncontainer.RegisterType<ILogger, Logger>();\n...\ncontainer.RegisterType<IOtherLogger, Logger>();\n
\n

Make sure it is registered before other mappings.

\n

Upgrading to Unity.Abstractions 4.1.4

\n

Lifetime managers now support the value null. GetValue must return LifetimeManager.NoValue to indicate that no value has been set. You must upgrade custom lifetime managers to not return null inappropriately. Mainly the GetValue method must be adjusted. The built-in lifetime managers have been upgraded. If you do not use custom lifetime managers you should not see any changes in behavior. (https://github.com/unitycontainer/abstractions/issues/102)

\n

Design time validation for LifetimeManager was added. The marker interfaces ITypeLifetimeManager, IInstanceLifetimeManager and IFactoryLifetimeManager have been introduced. Various other parts of the framework now refer to these types instead of LifetimeManager. The marker interfaces are empty and LifetimeManager does not inherit from any of them. This can lead to compiler errors. In general these errors can be fixed through changing the type of variables or through casting. (https://github.com/unitycontainer/abstractions/issues/90)

\n

Upgrading to Unity.Abstractions 4.0.0.350

\n

The namespace Unity.Attributes was removed. These types are now in namespace Unity. One common type that is affected is DependencyAttribute. Suggested way to upgrade: Mass delete the old namespace reference using the Regex using Unity.Attributes;\\r\\n in Visual Studio. Then, use Resharper to fix missing imports in the entire solution in one action.

\n

Upgrading to Unity.Abstractions 4.0.0.0

\n

A few breaking changes have been made. For more information see https://github.com/unitycontainer/abstractions/issues/97.

\n

Problem

\n

Build error The type or namespace name 'IBuilderContext' could not be found.

\n

Solution

\n

IBuilderContext has been replaced with: Unity.Builder.BuilderContext

\n

Problem

\n

Build Error `'IBuildPlanCreatorPolicy' is obsolete: 'This interface has been replaced with Unity.Policy.ResolveDelegateFactory delegate'``

\n

Solution

\n

See this example or this example or this example

\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PreBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PreBuildUp method to: public override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PostBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PostBuildUp method to:\npublic override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

Build Error in Builder Strategy derived class:\n'BuilderContext' does not contain a definition for 'AddResolverOverrides' and no accessible extension method 'AddResolverOverrides' accepting a first argument of type 'BuilderContext' could be found

\n

Solution

\n

The behaviour can be mimicked by something like:

\n
        public static void AddResolverOverrides(ref BuilderContext ctx, ResolverOverride theOverride)\n        {\n            var newOverrides = ctx.Overrides;\n            newOverrides = newOverrides == null \n                ? new ResolverOverride[]{theOverride} \n                : newOverrides.Concat(new[] {theOverride}).ToArray();\n\n            ctx.Overrides = newOverrides;\n        }\n
\n

Problem

\n

'BuilderContext' does not contain a definition for 'ParentContext' and no accessible extension method 'ParentContext' accepting a first argument of type 'BuilderContext' could be found

\n

I used the ParentContext of IBuilderContext to determine if anything in the build hierarchy was of a certain type. More specifically I was checking to see if a specific decorator class was being applied as part of the build.

\n

Solution

\n

There is an IntPtr Parent property on the BuilderContext struct. Can this be used to find the parent context?

\n

Problem

\n

There is a build warning:\n'InjectionFactory' is obsolete: 'InjectionFactory has been deprecated and will be removed in next release. Please use IUnityContainer.RegisterFactory(...) method instead.'

\n

Solution

\n

The InjectionFactory class has been deprecated. Injection factories are now registered directly with the container.\nFor example:

\n

Old code:\nContainer.RegisterType<IEncryptionProvider>(new ContainerControlledLifetimeManager(), new InjectionFactory(c => MakeEncryptionProvider(c)));

\n

New code:\nContainer.RegisterFactory<IEncryptionProvider>(c => MakeEncryptionProvider(c), new ContainerControlledLifetimeManager());

\n

Be Aware

\n

The public key token of the assembly has changed, so you may need to remove redundant assembly bindings from config files.

\n

For example:\nThis binding will now be ineffective, and can be removed:

\n
      <dependentAssembly>\n        <assemblyIdentity name="Unity.Abstractions" publicKeyToken="6d32ff45e0ccc69f" culture="neutral" />\n        <bindingRedirect oldVersion="0.0.0.0-3.3.0.0" newVersion="3.3.0.0" />\n      </dependentAssembly>\n
\n

Note:

\n
    \n
  • The old public key token value is 6d32ff45e0ccc69f
  • \n
  • The new public key token is 489b6accfaf20ef0
  • \n
\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PostBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PostBuildUp method to: public override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

I'm using this code to register my interfaces:

\n
Containter.RegisterType<ICustomerRepository, CustomerRepository>(new ContainerControlledLifetimeManager(), InjectionConstructor);\n
\n

But after the upgrade im getting the following error when resolving:

\n
Exception thrown: 'System.InvalidCastException' in Unity.Abstractions.dll\nUnable to cast object of type\n
\n

Solution

\n

Ok I managed to find out what I was doing wrong.\nI was reusing the same 'InjectionConstructor' for all my registrations.\nAfter replacing them with a new instance for each my problem went away.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/24/2019","updated_at_date_time":"2019-04-24T22:53:03Z"},"_path":"articles/changelog/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/changelog/","conceptual":"\n

This document contains a list of breaking changes and noteworthy issues. At this time the list is not complete. If you discover an issue while upgrading that is not covered here please open an issue or, preferably, issue a pull request. You can clone the wiki to do that.

\n

Some breaking changes are currently documented in the issue tracker only. Again, please report any such findings by commenting on the issue.

\n

Upgrading to Unity 5.9.x

\n

Starting with version 5.9.0 Unity package will only contain Unity.Abstractions and Unity.Container packages.

\n

All other packages will be available as individual NuGet packages

\n

Breaking change

\n

Some extension methods have been moved out of the Unity nuget package and have been moved into their own individual packages.

\n

For example, the following code will no longer work

\n
Container = new UnityContainer();\nContainer.LoadConfiguration();\n
\n

You will receive an error that the namespace Microsoft.Practices.Unity.Configuration no longer exists in your using statements.

\n

The Fix

\n

To fix this and similar problems, add the required nuget packages separately.

\n

For the example above, add nuget package Unity.Configuration

\n

This wiki created with help from quintonn

\n

Upgrading to Unity 5.8.x

\n

Unity 5.8.0 adds support for nesting generic types when resolving collections (arrays and enumerables).

\n

Problem

\n

Unity has build in support for IEnumerable<>, Array ( type[] ), Func<>, and Lazy<>. Theoretically it should be able to recognize these types and properly resolve them individually and in combination. Unfortunately it did not do so. For example if you registered several interfaces like this:

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n
\n

resolving enumerable in combination with generic will resolve incorrectly:

\n
Resolve<Lazy<IEnumenrable<type>>>  - resolve correctly\nResolve<IEnumenrable<Lazy<type>>>  - resolve empty\n
\n

The Fix

\n

Release v5.8.0 fixes resolution of collections of generic and array types and Lazy collections of items. This will now work fine:

\n
Resolve<Lazy<IEnumenrable<type>>>\nResolve<IEnumenrable<Lazy<type>>>\n\nResolve<Lazy<type[]>>\nResolve<Lazy<type>[]>\n\nResolve<IEnumerable<Lazy<Func<IService>>>>()\nResolve<IEnumerable<Func<Lazy<IService>>>>()\n\nResolve<Lazy<Func<IService>>[]>()\nResolve<Func<Lazy<IService>>[]>()\n
\n

The logic behind resolving collections is to find type to enumerate and get all registrations for it no matter how deep in generics tree. Enumerated type could be:

\n
    \n
  • Non generic (Constructed Generic) type
  • \n
  • Explicitly registered type
  • \n
\n

So, in this example

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n\nResolve<IEnumerable<Func<Lazy<IService>>>>();\n
\n

Unity will recognize IService as registered type and enumerate four instances of Func<Lazy<IService>>.

\n

But if you look at this example:

\n
RegisterType<IService, Service>("1");\nRegisterType<IService, Service>("2");\nRegisterType<IService, Service>("3");\nRegisterType<IService, Service>();\n\nRegisterType(typeof(IFoo<>), typeof(Foo<>));  <-- note this registraton\n\nResolve<IEnumerable<IFoo<IService>>>();\n
\n

Returned result is different! Adding registration for IFoo changes enumerable type to IFoo. This resolution will only return one item.

\n

Breaking change

\n

Sometimes you do want Unity to ignore a generic when it resolves collections similar to how it deals with Lazy and Func. Suppose in example above you want Unity to resolve all four of IService instances wrapped in IFoo.\nTo do so you would have to make IFoo<> a Built-In type of the container.

\n

It could be simply done by creating either IBuildPlanCreatorPolicy or IBuildPlanPolicy factories.\nThere are just a few steps you need to follow:

\n\n

For examples of how it should be done please follow this link.

\n

Upgrading to Unity 5.2.1

\n

This release fundamentally changes how types are registered with Unity. The rationale behind this change is this issue.

\n

The problem

\n

To explain the problem please look at this example. Prior to this release registering singleton ILogger service like this:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager(), new InjectionConstructor());\n
\n

would create two registrations:

\n
    \n
  1. A mapping between ILogger to MockLogger
  2. \n
  3. A singleton registration for MockLogger with default constructor.
  4. \n
\n

Calling container.Resolve<ILogger>() resolves singleton instance of MockLogger as expected, and resolving type MockLogger container.Resolve<MockLogger>() would resolve the same instance of MockLogger. Both ContainerControlledLifetimeManager and InjectionConstructor would be associated with MockLogger registration.

\n

Suppose you want to resolve a new MockLogger whenever it is resolved directly like this container.Resolve<MockLogger>(). To do so you would create another registration just for the MockLogger:

\n
container.RegisterType<MockLogger>(new TransientLifetimeManager());\n
\n

So, now when you call container.Resolve<MockLogger>() it resolves new instance of the MockLogger class and uses constructor with longest list of parameters. All is well and as expected. But now if you try to resolve container.Resolve<ILogger>() it is no longer returns singleton instance of the MockLogger. Now it also returns new MockLogger created with constructor with longest list of parameters.\nThe subsequent registration overwritten all information associated with ILogger.

\n

The solution

\n

Release 5.2.1 fixes this behavior. Now all information passed to Unity during registration is stored with FromType instead of ToType. So registering type like this:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager(), new InjectionConstructor());\n
\n

creates just one registration ILogger and associates LifetimeManager and all provided InjectionMemebers with it. At this point MockLogger is still unregistered.

\n

So, think about it as a RegisteredType and MappedTo type. If you look at initial example:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager());\n
\n

ILogger - is a registered type and ContainerControlledLifetimeManager is associated with this type, as well as any InjectionMembers you provide during registration.

\n

Breaking changes

\n

This release breaks a lot of registrations. Anything relaying on TypeTo being registered in mappings will fail. For example:

\n
container.RegisterType<ILogger, MockLogger>(new ContainerControlledLifetimeManager());\n\nAssert.AreSame( container.Resolve<ILogger>(), container.Resolve<MockLogger>()) <-- Will fail now\n
\n

This could be easily fixed by slightly modifying how types are registered. If you want TypeTo to be available independently you could register it like this:

\n
container.RegisterType<MockLogger>(new ContainerControlledLifetimeManager());\ncontainer.RegisterType<ILogger, MockLogger>();\n\nAssert.AreSame( container.Resolve<ILogger>(), container.Resolve<MockLogger>()) <-- Passes\n
\n

This applies to anything you registering with the type: factories, injection members, interceptors, etc.

\n

Fixing

\n

With some creative searching and sorting these breaking registrations could be identified statically, without running the code. The key is to look for registrations with same TypeTo type. If you see multiple registrations registering same type as implementation type and at least one of them has non transient lifetime it is a good indicator that it might fail after update:

\n
container.RegisterType<ILogger, Logger>(new ContainerControlledLifetimeManager());\n...\ncontainer.RegisterType<IOtherLogger, Logger>();\n
\n

To fix just add individual registration for implementation type with proper lifetime manager like so:

\n
container.RegisterType<Logger>(new ContainerControlledLifetimeManager());\n...\ncontainer.RegisterType<ILogger, Logger>();\n...\ncontainer.RegisterType<IOtherLogger, Logger>();\n
\n

Make sure it is registered before other mappings.

\n

Upgrading to Unity.Abstractions 4.1.4

\n

Lifetime managers now support the value null. GetValue must return LifetimeManager.NoValue to indicate that no value has been set. You must upgrade custom lifetime managers to not return null inappropriately. Mainly the GetValue method must be adjusted. The built-in lifetime managers have been upgraded. If you do not use custom lifetime managers you should not see any changes in behavior. (https://github.com/unitycontainer/abstractions/issues/102)

\n

Design time validation for LifetimeManager was added. The marker interfaces ITypeLifetimeManager, IInstanceLifetimeManager and IFactoryLifetimeManager have been introduced. Various other parts of the framework now refer to these types instead of LifetimeManager. The marker interfaces are empty and LifetimeManager does not inherit from any of them. This can lead to compiler errors. In general these errors can be fixed through changing the type of variables or through casting. (https://github.com/unitycontainer/abstractions/issues/90)

\n

Upgrading to Unity.Abstractions 4.0.0.350

\n

The namespace Unity.Attributes was removed. These types are now in namespace Unity. One common type that is affected is DependencyAttribute. Suggested way to upgrade: Mass delete the old namespace reference using the Regex using Unity.Attributes;\\r\\n in Visual Studio. Then, use Resharper to fix missing imports in the entire solution in one action.

\n

Upgrading to Unity.Abstractions 4.0.0.0

\n

A few breaking changes have been made. For more information see https://github.com/unitycontainer/abstractions/issues/97.

\n

Problem

\n

Build error The type or namespace name 'IBuilderContext' could not be found.

\n

Solution

\n

IBuilderContext has been replaced with: Unity.Builder.BuilderContext

\n

Problem

\n

Build Error `'IBuildPlanCreatorPolicy' is obsolete: 'This interface has been replaced with Unity.Policy.ResolveDelegateFactory delegate'``

\n

Solution

\n

See this example or this example or this example

\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PreBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PreBuildUp method to: public override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PostBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PostBuildUp method to:\npublic override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

Build Error in Builder Strategy derived class:\n'BuilderContext' does not contain a definition for 'AddResolverOverrides' and no accessible extension method 'AddResolverOverrides' accepting a first argument of type 'BuilderContext' could be found

\n

Solution

\n

The behaviour can be mimicked by something like:

\n
        public static void AddResolverOverrides(ref BuilderContext ctx, ResolverOverride theOverride)\n        {\n            var newOverrides = ctx.Overrides;\n            newOverrides = newOverrides == null \n                ? new ResolverOverride[]{theOverride} \n                : newOverrides.Concat(new[] {theOverride}).ToArray();\n\n            ctx.Overrides = newOverrides;\n        }\n
\n

Problem

\n

'BuilderContext' does not contain a definition for 'ParentContext' and no accessible extension method 'ParentContext' accepting a first argument of type 'BuilderContext' could be found

\n

I used the ParentContext of IBuilderContext to determine if anything in the build hierarchy was of a certain type. More specifically I was checking to see if a specific decorator class was being applied as part of the build.

\n

Solution

\n

There is an IntPtr Parent property on the BuilderContext struct. Can this be used to find the parent context?

\n

Problem

\n

There is a build warning:\n'InjectionFactory' is obsolete: 'InjectionFactory has been deprecated and will be removed in next release. Please use IUnityContainer.RegisterFactory(...) method instead.'

\n

Solution

\n

The InjectionFactory class has been deprecated. Injection factories are now registered directly with the container.\nFor example:

\n

Old code:\nContainer.RegisterType<IEncryptionProvider>(new ContainerControlledLifetimeManager(), new InjectionFactory(c => MakeEncryptionProvider(c)));

\n

New code:\nContainer.RegisterFactory<IEncryptionProvider>(c => MakeEncryptionProvider(c), new ContainerControlledLifetimeManager());

\n

Be Aware

\n

The public key token of the assembly has changed, so you may need to remove redundant assembly bindings from config files.

\n

For example:\nThis binding will now be ineffective, and can be removed:

\n
      <dependentAssembly>\n        <assemblyIdentity name="Unity.Abstractions" publicKeyToken="6d32ff45e0ccc69f" culture="neutral" />\n        <bindingRedirect oldVersion="0.0.0.0-3.3.0.0" newVersion="3.3.0.0" />\n      </dependentAssembly>\n
\n

Note:

\n
    \n
  • The old public key token value is 6d32ff45e0ccc69f
  • \n
  • The new public key token is 489b6accfaf20ef0
  • \n
\n

Problem

\n

Build Error in BuilderStrategy derived classes: 'MyCustomStrategy.PostBuildUp(BuilderContext)': no suitable method found to override

\n

Solution

\n

Adjust the signature of the PostBuildUp method to: public override void PreBuildUp(ref BuilderContext context)

\n

Problem

\n

I'm using this code to register my interfaces:

\n
Containter.RegisterType<ICustomerRepository, CustomerRepository>(new ContainerControlledLifetimeManager(), InjectionConstructor);\n
\n

But after the upgrade im getting the following error when resolving:

\n
Exception thrown: 'System.InvalidCastException' in Unity.Abstractions.dll\nUnable to cast object of type\n
\n

Solution

\n

Ok I managed to find out what I was doing wrong.\nI was reusing the same 'InjectionConstructor' for all my registrations.\nAfter replacing them with a new instance for each my problem went away.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/changelog.md","depot_name":".","document_id":"6a34c583-fac2-de3b-02e6-295347f24cec","document_version_independent_id":"f49a2693-93c2-cc77-ff66-251ae7c171be","gitcommit":"https://github.com/unitycontainer/documentation/blob/3838863b96854037a5cc56e5c9a81bf7bcdc15c5/articles/changelog.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/changelog.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/changelog.md","rawTitle":"

Upgrading Unity Container (Changelog)

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Upgrading Unity Container (Changelog)","uid":"Article.Change.Log","updated_at":"2019-04-24 10:53 PM","wordCount":1670},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/design/index.html b/_site/articles/design/index.html deleted file mode 100644 index 7fd01d2..0000000 --- a/_site/articles/design/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Unity was designed to achieve the following goals:

\n
    \n
  • Promote the principles of modular design through aggressive decoupling.
  • \n
  • Maximize testability when designing applications.
  • \n
  • Provide a fast and lightweight dependency injection platform for creating new as well as managing existing objects.
  • \n
  • Expose a compact and intuitive API for developers to work with.
  • \n
  • Support a wide range of languages, and platforms.
  • \n
  • Allow attribute-driven injection for constructors, properties, fields, and methods.
  • \n
  • Provide extensibility through container extensions.
  • \n
  • Provide stability required in enterprise-level line of business (LOB) applications.
  • \n
\n

To allow maximum flexibility Unity container split into core and extension packages. Core packages implement basic IoC/DI functionality and extensions provide specific behavior such as configuration, decoration, and etc.

\n

Unity Core

\n

Unity core consists of two assemblies:

\n
    \n
  • Unity.Abstractions
  • \n
  • Unity.Container
  • \n
\n

Unity.Abstractions assembly contains all public declarations required to use the container in applications and relatively unchanged from version to version. It defines IUnityContainer interface as well as types and interfaces used to register, configure and resolve types and instances.

\n

Unity.Container assembly implements the IoC engine and exposes public members required to extend the container.

\n

Core Packages

\n

For legacy support and general convenience core library is distributed in two different forms:

\n\n

Composite package Unity

\n

This is a convenience package containing both Unity.Abstractions as well as Unity.Container assemblies. This package is distributed to support legacy applications.

\n

Independent Packages Unity.Abstractions and Unity.Container

\n

To allow easier path to upgrade and maximum decoupling between declarative part and implementation, Unity split into two assemblies: Unity.Abstractions and Unity.Container

\n

When used in libraries it allows linking to Unity.Abstractions and referencing Unity.Container only in bootstrapping project.

\n

Unity Extensions

\n

Unity project implements and distributes several extensions such as Unity.Configuration, Unity.Interception, and etc.

\n

More Information

\n

For more information about using packages inside applications see Application Design concepts with Unity.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"11/25/2019","updated_at_date_time":"2019-11-25T20:32:40Z"},"_path":"articles/design/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/design/","conceptual":"\n

Unity was designed to achieve the following goals:

\n
    \n
  • Promote the principles of modular design through aggressive decoupling.
  • \n
  • Maximize testability when designing applications.
  • \n
  • Provide a fast and lightweight dependency injection platform for creating new as well as managing existing objects.
  • \n
  • Expose a compact and intuitive API for developers to work with.
  • \n
  • Support a wide range of languages, and platforms.
  • \n
  • Allow attribute-driven injection for constructors, properties, fields, and methods.
  • \n
  • Provide extensibility through container extensions.
  • \n
  • Provide stability required in enterprise-level line of business (LOB) applications.
  • \n
\n

To allow maximum flexibility Unity container split into core and extension packages. Core packages implement basic IoC/DI functionality and extensions provide specific behavior such as configuration, decoration, and etc.

\n

Unity Core

\n

Unity core consists of two assemblies:

\n
    \n
  • Unity.Abstractions
  • \n
  • Unity.Container
  • \n
\n

Unity.Abstractions assembly contains all public declarations required to use the container in applications and relatively unchanged from version to version. It defines IUnityContainer interface as well as types and interfaces used to register, configure and resolve types and instances.

\n

Unity.Container assembly implements the IoC engine and exposes public members required to extend the container.

\n

Core Packages

\n

For legacy support and general convenience core library is distributed in two different forms:

\n\n

Composite package Unity

\n

This is a convenience package containing both Unity.Abstractions as well as Unity.Container assemblies. This package is distributed to support legacy applications.

\n

Independent Packages Unity.Abstractions and Unity.Container

\n

To allow easier path to upgrade and maximum decoupling between declarative part and implementation, Unity split into two assemblies: Unity.Abstractions and Unity.Container

\n

When used in libraries it allows linking to Unity.Abstractions and referencing Unity.Container only in bootstrapping project.

\n

Unity Extensions

\n

Unity project implements and distributes several extensions such as Unity.Configuration, Unity.Interception, and etc.

\n

More Information

\n

For more information about using packages inside applications see Application Design concepts with Unity.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/design.md","depot_name":".","document_id":"b362c72d-351a-f2e3-9457-72d6818c97c0","document_version_independent_id":"50caf97e-a047-7f49-3a23-3b57ba420d7b","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a49e6e6bf793ca22cb92d5313c37eea597c589a/articles/design.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/design.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/design.md","rawTitle":"

Design of Unity

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Design of Unity","uid":"Article.Unity.Design","updated_at":"2019-11-25 08:32 PM","wordCount":301},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/features/index.html b/_site/articles/features/index.html deleted file mode 100644 index 71d0ef8..0000000 --- a/_site/articles/features/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

General Features

\n
    \n
  • No registration required for simple POCO types
  • \n
  • Registration/updates at any time (no builder required)
  • \n
  • Support registration metadata
  • \n
  • Support generic types
  • \n
  • Register existing objects
  • \n
  • Custom Type factories
  • \n
  • Register Type
  • \n
  • List all registrations
  • \n
  • Check existing registrations
  • \n
\n

Setup

\n
    \n
  • Registration\n
      \n
    • Type mappings\n
        \n
      • Register as a Type
      • \n
      • Support Type polymorphism
      • \n
      • Register as an implemented interface
      • \n
      • Multiple interfaces of the same Type
      • \n
      \n
    • \n
    • Register Type\n
        \n
      • Constructor selection\n
          \n
        • Constructor marked by attribute
        • \n
        • 'Smart' constructor selection\n
            \n
          • Longest constructor Unity can satisfy with parameters (dynamic)
          • \n
          • Legacy longest constructor (Extension)
          • \n
          \n
        • \n
        • Specific constructor (Injection Member)\n
            \n
          • By types of parameters
          • \n
          • By injected members
          • \n
          • By provided values
          • \n
          \n
        • \n
        \n
      • \n
      • Initializing Properties\n
          \n
        • Marked with attribute
        • \n
        • Injected during registration (Injection Member)
        • \n
        \n
      • \n
      • Initializing Fields\n
          \n
        • Marked with attribute
        • \n
        • Injected during registration (Injection Member)
        • \n
        \n
      • \n
      • Calling Methods on the object\n
          \n
        • Marked with attribute
        • \n
        • Injected during registration (Injection Member)\n
            \n
          • By types of parameters
          • \n
          • By injected members
          • \n
          • By provided values
          • \n
          \n
        • \n
        \n
      • \n
      \n
    • \n
    \n
  • \n
  • Registrations Collection\n
      \n
    • List registrations of the container
    • \n
    • Support registration hierarchies
    • \n
    \n
  • \n
  • Check if Type is registered\n
      \n
    • Fast and efficient algorithm
    • \n
    \n
  • \n
\n

Execution

\n

Initialization of existing objects (BuildUp)

\n
    \n
  • Perform initialization on already created objects
  • \n
  • Follow the same pattern as create (Resolve) object
  • \n
  • Compatible with Activator and Compiled pipelines
  • \n
  • Initialize Properties and Fields
  • \n
  • Call Methods and inject parameters
  • \n
\n

Create Instances (Resolve)

\n
    \n
  • Inject constructor with parameters
  • \n
  • Initialize Properties and Fields
  • \n
  • Call Methods and injects parameters
  • \n
  • Support Activator pipelines
  • \n
  • Create optimized (compiled) pipelines
  • \n
  • Seamlessly resolve registered instances or creates new objects
  • \n
  • Built-in support for deferred resolution\n
      \n
    • Func<T>
    • \n
    • Lazy<T>
    • \n
    \n
  • \n
  • Built-in support for collections\n
      \n
    • T[]
    • \n
    • IEnumerable<T>
    • \n
    \n
  • \n
  • Automatic concrete types resolution
  • \n
  • Dependency injection\n
      \n
    • Required
    • \n
    • Optional
    • \n
    • Supports Default parameters
    • \n
    • Injects with resolved parameters
    • \n
    • Injects with registered values
    • \n
    • Supports parameter overrides
    • \n
    \n
  • \n
  • Open-generic types\n
      \n
    • constraints
    • \n
    • variance
    • \n
    • nested
    • \n
    • recurring generic definitions
    • \n
    \n
  • \n
\n

Manages lifetime of objects

\n
    \n
  • Transient
  • \n
  • Singleton
  • \n
  • Per Container
  • \n
  • Per Container Transient
  • \n
  • Hierarchical
  • \n
  • External
  • \n
  • Per Thread
  • \n
  • Per Resolve
  • \n
  • Other (Extension)
  • \n
\n

Create child (Scoped) containers

\n
    \n
  • Create disposable child containers (scopes)
  • \n
\n

Extensibility

\n

Diagnostic

\n
    \n
  • Registration
  • \n
  • Injection Attribute
  • \n
  • Stack Overflow
  • \n
  • Cyclic reference
  • \n
\n

Legacy

\n
    \n
  • Legacy constructor selection
  • \n
\n

Functionality

\n
    \n
  • Configuration
  • \n
  • Interception
  • \n
  • Logging
  • \n
  • Web
  • \n
  • Etc.
  • \n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/22/2019","updated_at_date_time":"2019-03-22T22:10:41Z"},"_path":"articles/features/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/features/","conceptual":"\n

General Features

\n
    \n
  • No registration required for simple POCO types
  • \n
  • Registration/updates at any time (no builder required)
  • \n
  • Support registration metadata
  • \n
  • Support generic types
  • \n
  • Register existing objects
  • \n
  • Custom Type factories
  • \n
  • Register Type
  • \n
  • List all registrations
  • \n
  • Check existing registrations
  • \n
\n

Setup

\n
    \n
  • Registration\n
      \n
    • Type mappings\n
        \n
      • Register as a Type
      • \n
      • Support Type polymorphism
      • \n
      • Register as an implemented interface
      • \n
      • Multiple interfaces of the same Type
      • \n
      \n
    • \n
    • Register Type\n
        \n
      • Constructor selection\n
          \n
        • Constructor marked by attribute
        • \n
        • 'Smart' constructor selection\n
            \n
          • Longest constructor Unity can satisfy with parameters (dynamic)
          • \n
          • Legacy longest constructor (Extension)
          • \n
          \n
        • \n
        • Specific constructor (Injection Member)\n
            \n
          • By types of parameters
          • \n
          • By injected members
          • \n
          • By provided values
          • \n
          \n
        • \n
        \n
      • \n
      • Initializing Properties\n
          \n
        • Marked with attribute
        • \n
        • Injected during registration (Injection Member)
        • \n
        \n
      • \n
      • Initializing Fields\n
          \n
        • Marked with attribute
        • \n
        • Injected during registration (Injection Member)
        • \n
        \n
      • \n
      • Calling Methods on the object\n
          \n
        • Marked with attribute
        • \n
        • Injected during registration (Injection Member)\n
            \n
          • By types of parameters
          • \n
          • By injected members
          • \n
          • By provided values
          • \n
          \n
        • \n
        \n
      • \n
      \n
    • \n
    \n
  • \n
  • Registrations Collection\n
      \n
    • List registrations of the container
    • \n
    • Support registration hierarchies
    • \n
    \n
  • \n
  • Check if Type is registered\n
      \n
    • Fast and efficient algorithm
    • \n
    \n
  • \n
\n

Execution

\n

Initialization of existing objects (BuildUp)

\n
    \n
  • Perform initialization on already created objects
  • \n
  • Follow the same pattern as create (Resolve) object
  • \n
  • Compatible with Activator and Compiled pipelines
  • \n
  • Initialize Properties and Fields
  • \n
  • Call Methods and inject parameters
  • \n
\n

Create Instances (Resolve)

\n
    \n
  • Inject constructor with parameters
  • \n
  • Initialize Properties and Fields
  • \n
  • Call Methods and injects parameters
  • \n
  • Support Activator pipelines
  • \n
  • Create optimized (compiled) pipelines
  • \n
  • Seamlessly resolve registered instances or creates new objects
  • \n
  • Built-in support for deferred resolution\n
      \n
    • Func<T>
    • \n
    • Lazy<T>
    • \n
    \n
  • \n
  • Built-in support for collections\n
      \n
    • T[]
    • \n
    • IEnumerable<T>
    • \n
    \n
  • \n
  • Automatic concrete types resolution
  • \n
  • Dependency injection\n
      \n
    • Required
    • \n
    • Optional
    • \n
    • Supports Default parameters
    • \n
    • Injects with resolved parameters
    • \n
    • Injects with registered values
    • \n
    • Supports parameter overrides
    • \n
    \n
  • \n
  • Open-generic types\n
      \n
    • constraints
    • \n
    • variance
    • \n
    • nested
    • \n
    • recurring generic definitions
    • \n
    \n
  • \n
\n

Manages lifetime of objects

\n
    \n
  • Transient
  • \n
  • Singleton
  • \n
  • Per Container
  • \n
  • Per Container Transient
  • \n
  • Hierarchical
  • \n
  • External
  • \n
  • Per Thread
  • \n
  • Per Resolve
  • \n
  • Other (Extension)
  • \n
\n

Create child (Scoped) containers

\n
    \n
  • Create disposable child containers (scopes)
  • \n
\n

Extensibility

\n

Diagnostic

\n
    \n
  • Registration
  • \n
  • Injection Attribute
  • \n
  • Stack Overflow
  • \n
  • Cyclic reference
  • \n
\n

Legacy

\n
    \n
  • Legacy constructor selection
  • \n
\n

Functionality

\n
    \n
  • Configuration
  • \n
  • Interception
  • \n
  • Logging
  • \n
  • Web
  • \n
  • Etc.
  • \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/features.md","depot_name":".","document_id":"7e5161f5-b147-7283-ad4e-24b92f86aa94","document_version_independent_id":"d27ff859-57d2-8956-ce66-c2138968998c","gitcommit":"https://github.com/unitycontainer/documentation/blob/df7803bd64e560cd90a37d21d4db0bd5c1cdc503/articles/features.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/features.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/features.md","rawTitle":"

Features

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Features","uid":"Article.Unity.Features","updated_at":"2019-03-22 10:10 PM","wordCount":313},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/history/index.html b/_site/articles/history/index.html deleted file mode 100644 index 134f50c..0000000 --- a/_site/articles/history/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
YearReleaseAuthors and Contributors
October 2017Unity 5GitHub Community Site
October 2015Unity 4GitHub Community Site
April 2014Unity 3.5CodePlex Community Site
April 2013Unity 3CodePlex Community Site
Aug 2012Unity 2.1CodePlex Community Site
April 2010Unity 2.0Grigori Melnik, Bob Brumfield, Chris Tavares, Fernando Simonazzi, Nicolas Botto, Olaf Conijn, Carlos Farre, Masashi Narumoto, Rohit Sharma, Lavanya Selvaraj, Magdelene Sona, Mani Krishnaswami, Meenakshi Krishnamoorthi, Santhosh Panneerselvam, Ravindra Varman, Erik Renaud, François Tanguay, Rick Carr, Alex Homer, Dennis DeWitt, RoAnn Corbisier, Steve Elston, Nancy Michel, Patrick Lanfear, Tom Draper, Richard Burte, Jennifer Burch, Tracy Emory
October 2008Unity Application Block 1.2Grigori Melnik, Chris Tavares, Fernando Simonazzi, Vijaya Janakiraman, Carlos Farre, Dennis DeWitt, Alex Homer, Nelly Delgado, RoAnn Corbisier, Tina Burden McGrayne, Richard Burte
May 2008Unity Application Block 1.1Grigori Melnik, Scott Densmore, William Loeffler, Chris Tavares, Fernando Simonazzi, Nicolas Botto, Hanz Zhang, Carlos Farre, Naveen Guda, Pooja Parate, Pravin Pawar, Ronita Acharya, Sai Pasumarthi, Venkata Appaji Sirangi, Vijaya Janakiraman, Alex Homer, Nelly Delgado, RoAnn Corbisier, Tina Burden McGrayne
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/16/2019","updated_at_date_time":"2019-03-16T20:42:53Z"},"_path":"articles/history/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/history/","conceptual":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
YearReleaseAuthors and Contributors
October 2017Unity 5GitHub Community Site
October 2015Unity 4GitHub Community Site
April 2014Unity 3.5CodePlex Community Site
April 2013Unity 3CodePlex Community Site
Aug 2012Unity 2.1CodePlex Community Site
April 2010Unity 2.0Grigori Melnik, Bob Brumfield, Chris Tavares, Fernando Simonazzi, Nicolas Botto, Olaf Conijn, Carlos Farre, Masashi Narumoto, Rohit Sharma, Lavanya Selvaraj, Magdelene Sona, Mani Krishnaswami, Meenakshi Krishnamoorthi, Santhosh Panneerselvam, Ravindra Varman, Erik Renaud, François Tanguay, Rick Carr, Alex Homer, Dennis DeWitt, RoAnn Corbisier, Steve Elston, Nancy Michel, Patrick Lanfear, Tom Draper, Richard Burte, Jennifer Burch, Tracy Emory
October 2008Unity Application Block 1.2Grigori Melnik, Chris Tavares, Fernando Simonazzi, Vijaya Janakiraman, Carlos Farre, Dennis DeWitt, Alex Homer, Nelly Delgado, RoAnn Corbisier, Tina Burden McGrayne, Richard Burte
May 2008Unity Application Block 1.1Grigori Melnik, Scott Densmore, William Loeffler, Chris Tavares, Fernando Simonazzi, Nicolas Botto, Hanz Zhang, Carlos Farre, Naveen Guda, Pooja Parate, Pravin Pawar, Ronita Acharya, Sai Pasumarthi, Venkata Appaji Sirangi, Vijaya Janakiraman, Alex Homer, Nelly Delgado, RoAnn Corbisier, Tina Burden McGrayne
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/history.md","depot_name":".","document_id":"a4e26158-c7cf-11a1-7e12-8fa419b1f274","document_version_independent_id":"3efb1167-e235-dd99-e5dd-5db9dde70f26","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/articles/history.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/history.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/history.md","rawTitle":"

The Unity Container History

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"The Unity Container History","uid":"Article.Unity.History","updated_at":"2019-03-16 08:42 PM","wordCount":175},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/installation/index.html b/_site/articles/installation/index.html deleted file mode 100644 index 2a2013f..0000000 --- a/_site/articles/installation/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Unity is designed to support a range of common scenarios for resolving instances of objects that, themselves, depend on other objects or services. However, you must first prepare your application to use Unity. The following procedure describes how to include the necessary assemblies and elements in your code.

\n

To prepare your application

\n

Before you can add Unity to your solution you need to decide if you want to reference packages individually (Abstractions, Container) or use composite Unity package.

\n

Referencing composite package

\n

Referencing single Unity package is more appropriate in case of small(ish) project, when everything is contained within one solution. Upgrading such solution is trivial with the help of NuGet Manager.

\n

Referencing individual packages

\n

Main benefit of referencing Abstractions and Container packages individually is when it is used in large project spanning multiple solutions, modules, and project files.

\n

Normally modular systems have one main application/module with boot-loader responsible for initializing environment, and number of modules loaded by it (Prism library for example). This boot loader is required to reference both Abstractions and Container packages.

\n

In such systems modules are created and distributed by various teams and departments and synchronization between these might be a challenge. This is where Unity comes in.\nAs stated elsewhere on this site Unity.Abstractions contains all declarations required by Unity to operate. Because of that modules could only reference one assembly: Unity.Abstractions

\n

This separation allows updates of patched container's engine without recompiling all the modules used in the system. Given that specifications change very infrequently and Unity.Abstractions package stays the same most of the time it provides big benefit in terms of saved development/testing time and money.

\n

Adding Unity to project

\n

Unity container is distributed via NuGet and could be added to a project with the help of NuGet manager or by executing command:

\n
Install-Package Unity\n\nor\n\nInstall-Package Unity.Abstractions\nInstall-Package Unity.Container\n
\n

If you wish to use Floating Version references it is recommended to lock in the minor and major versions and only allow patch version to slide:

\n
<PackageReference Include="Unity.Container" Version="5.9.*" />\n
\n

doing so will guarantee that no breaking change caught you of guard.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/4/2019","updated_at_date_time":"2019-03-04T02:14:05Z"},"_path":"articles/installation/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/installation/","conceptual":"\n

Unity is designed to support a range of common scenarios for resolving instances of objects that, themselves, depend on other objects or services. However, you must first prepare your application to use Unity. The following procedure describes how to include the necessary assemblies and elements in your code.

\n

To prepare your application

\n

Before you can add Unity to your solution you need to decide if you want to reference packages individually (Abstractions, Container) or use composite Unity package.

\n

Referencing composite package

\n

Referencing single Unity package is more appropriate in case of small(ish) project, when everything is contained within one solution. Upgrading such solution is trivial with the help of NuGet Manager.

\n

Referencing individual packages

\n

Main benefit of referencing Abstractions and Container packages individually is when it is used in large project spanning multiple solutions, modules, and project files.

\n

Normally modular systems have one main application/module with boot-loader responsible for initializing environment, and number of modules loaded by it (Prism library for example). This boot loader is required to reference both Abstractions and Container packages.

\n

In such systems modules are created and distributed by various teams and departments and synchronization between these might be a challenge. This is where Unity comes in.\nAs stated elsewhere on this site Unity.Abstractions contains all declarations required by Unity to operate. Because of that modules could only reference one assembly: Unity.Abstractions

\n

This separation allows updates of patched container's engine without recompiling all the modules used in the system. Given that specifications change very infrequently and Unity.Abstractions package stays the same most of the time it provides big benefit in terms of saved development/testing time and money.

\n

Adding Unity to project

\n

Unity container is distributed via NuGet and could be added to a project with the help of NuGet manager or by executing command:

\n
Install-Package Unity\n\nor\n\nInstall-Package Unity.Abstractions\nInstall-Package Unity.Container\n
\n

If you wish to use Floating Version references it is recommended to lock in the minor and major versions and only allow patch version to slide:

\n
<PackageReference Include="Unity.Container" Version="5.9.*" />\n
\n

doing so will guarantee that no breaking change caught you of guard.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/installation.md","depot_name":".","document_id":"f2c12317-d328-78fd-cc78-8bf80690406d","document_version_independent_id":"623501b4-0f80-ff38-3a41-051d28f127a9","gitcommit":"https://github.com/unitycontainer/documentation/blob/a08c5cd38778dbc7606660e730b63c1a6800daf1/articles/installation.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/installation.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/installation.md","rawTitle":"

Adding Unity to Your Application

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Adding Unity to Your Application","uid":"Article.Unity.Install","updated_at":"2019-03-04 02:14 AM","wordCount":347},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/introduction/index.html b/_site/articles/introduction/index.html deleted file mode 100644 index 471f250..0000000 --- a/_site/articles/introduction/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Overview

\n

Unity Container is a full featured, general-purpose IoC container for use in any type of .NET application. It is Open Source and released under Apache 2.0 license.

\n

Unity is extensible. Anyone can write an extensions that changes the behavior of the container, or adds new capabilities. For example, the interception feature provided by Unity, which you can use to add policies to objects, is implemented as a container extension.

\n

What Does Unity Do

\n

Apart from decoupling types, components, services, and separating concerns, Unity crates and manages objects. Think of it as operator new ... on steroids.

\n\n

The Types of Objects Unity Can Create

\n

You can use the Unity container to generate instances of any object that has a public constructor (in other words, objects that you can create using the new operator). During object instantiation Unity can:

\n
    \n
  • Select appropriate constructor
  • \n
  • Inject constructor with parameters
  • \n
  • Inject public properties with values
  • \n
  • Inject public fields with values
  • \n
  • Call any public method on the created object
  • \n
\n

Registering Types and Object Instances

\n

Unity can resolve any concrete, constructable reference type without registration. For example calling container.Resolve<object>() will produce an instance immediately.

\n

Registrations allow mapping between service types and implementation types. Create a blueprint of how instances instantiated, initialized, and managed. For generic types it creates internal mini factories that used to generate concrete types. Unity supports three ways of registering types:

\n

Instance registration

\n

Unity exposes a method named RegisterInstance that you can use to register existing instances with the container. The instance could be registered as concrete type, a type of the instance you would get by calling instance.GetType(), or it could be registered as any of the interfaces the instance implements. Lifetime of registered instance could be either controlled by container it is registered with or externally, in which case Unity just keeps weak reference to the object.

\n

Factory registration

\n

Method RegisterFactory provides a way to register a factory delegate Unity would call when required to provide the type.

\n

Type registration

\n

RegisterType is a method where you can instruct Unity how to create and initialize objects from scratch. You can specify:

\n
    \n
  • Constructor to call
  • \n
  • Parameters to pass to the constructor or how to resolve them
  • \n
  • Properties to initialize and how to do it
  • \n
  • Fields to inject and with what
  • \n
  • Methods to call on the created object and parameters to pass to these methods
  • \n
  • Specify how lifetime should be managed
  • \n
\n

Managing the Lifetime of Objects

\n

Unity allows you to choose the lifetime of the objects it creates. By default, Unity creates a new instance of a type each time you resolve that type. However, you can use different lifetime managers to specify a required lifetime for resolved instances. For example, you can specify that Unity should maintain only a single instance (a singleton). It will create a new instance only if there is no existing instance. If there is an existing instance, it will return a reference to this instead. There are also other lifetime managers you can use.

\n

Specifying Values for Injection

\n

Unity allows configurations where dependencies are resolved from the container. But it also provides an easy way to configure injection of values at registration. In other words you could provide values for dependencies to be registered and used during subsequent resolutions.

\n

Unity also allows overriding of any dependency values during resolution. It could override any configured or resolved value during resolution of the type.

\n

Populating collections

\n

Unity has built-in support for resolving arrays and enumerations of types. For example it would recognize following types as collections and resolve them using proper algorithm:

\n
    \n
  • Resolve<T[]>()
  • \n
  • Resolve<IEnumerable<T>>()
  • \n
  • Resolve<List<T>>()
  • \n
\n

Support for deferred resolution

\n

Unity container implements strategies to allow deferred resolution of types. It has two types of deferred resolvers:

\n
    \n
  • Func<T> - Creates factory method which instantiates type T on demand.
  • \n
  • Lazy<T> - Creates Lazy<T> object and passes it to created type.
  • \n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"11/25/2019","updated_at_date_time":"2019-11-25T20:32:40Z"},"_path":"articles/introduction/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/introduction/","conceptual":"\n

Overview

\n

Unity Container is a full featured, general-purpose IoC container for use in any type of .NET application. It is Open Source and released under Apache 2.0 license.

\n

Unity is extensible. Anyone can write an extensions that changes the behavior of the container, or adds new capabilities. For example, the interception feature provided by Unity, which you can use to add policies to objects, is implemented as a container extension.

\n

What Does Unity Do

\n

Apart from decoupling types, components, services, and separating concerns, Unity crates and manages objects. Think of it as operator new ... on steroids.

\n\n

The Types of Objects Unity Can Create

\n

You can use the Unity container to generate instances of any object that has a public constructor (in other words, objects that you can create using the new operator). During object instantiation Unity can:

\n
    \n
  • Select appropriate constructor
  • \n
  • Inject constructor with parameters
  • \n
  • Inject public properties with values
  • \n
  • Inject public fields with values
  • \n
  • Call any public method on the created object
  • \n
\n

Registering Types and Object Instances

\n

Unity can resolve any concrete, constructable reference type without registration. For example calling container.Resolve<object>() will produce an instance immediately.

\n

Registrations allow mapping between service types and implementation types. Create a blueprint of how instances instantiated, initialized, and managed. For generic types it creates internal mini factories that used to generate concrete types. Unity supports three ways of registering types:

\n

Instance registration

\n

Unity exposes a method named RegisterInstance that you can use to register existing instances with the container. The instance could be registered as concrete type, a type of the instance you would get by calling instance.GetType(), or it could be registered as any of the interfaces the instance implements. Lifetime of registered instance could be either controlled by container it is registered with or externally, in which case Unity just keeps weak reference to the object.

\n

Factory registration

\n

Method RegisterFactory provides a way to register a factory delegate Unity would call when required to provide the type.

\n

Type registration

\n

RegisterType is a method where you can instruct Unity how to create and initialize objects from scratch. You can specify:

\n
    \n
  • Constructor to call
  • \n
  • Parameters to pass to the constructor or how to resolve them
  • \n
  • Properties to initialize and how to do it
  • \n
  • Fields to inject and with what
  • \n
  • Methods to call on the created object and parameters to pass to these methods
  • \n
  • Specify how lifetime should be managed
  • \n
\n

Managing the Lifetime of Objects

\n

Unity allows you to choose the lifetime of the objects it creates. By default, Unity creates a new instance of a type each time you resolve that type. However, you can use different lifetime managers to specify a required lifetime for resolved instances. For example, you can specify that Unity should maintain only a single instance (a singleton). It will create a new instance only if there is no existing instance. If there is an existing instance, it will return a reference to this instead. There are also other lifetime managers you can use.

\n

Specifying Values for Injection

\n

Unity allows configurations where dependencies are resolved from the container. But it also provides an easy way to configure injection of values at registration. In other words you could provide values for dependencies to be registered and used during subsequent resolutions.

\n

Unity also allows overriding of any dependency values during resolution. It could override any configured or resolved value during resolution of the type.

\n

Populating collections

\n

Unity has built-in support for resolving arrays and enumerations of types. For example it would recognize following types as collections and resolve them using proper algorithm:

\n
    \n
  • Resolve<T[]>()
  • \n
  • Resolve<IEnumerable<T>>()
  • \n
  • Resolve<List<T>>()
  • \n
\n

Support for deferred resolution

\n

Unity container implements strategies to allow deferred resolution of types. It has two types of deferred resolvers:

\n
    \n
  • Func<T> - Creates factory method which instantiates type T on demand.
  • \n
  • Lazy<T> - Creates Lazy<T> object and passes it to created type.
  • \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/introduction.md","depot_name":".","document_id":"edb43f99-5118-5174-37b2-f733fa1abf87","document_version_independent_id":"e3b1d344-8371-7dbc-ed8d-707d380a75d4","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a49e6e6bf793ca22cb92d5313c37eea597c589a/articles/introduction.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/introduction.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/introduction.md","rawTitle":"

Unity Container Introduction

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Container Introduction","uid":"Article.Unity.Introduction","updated_at":"2019-11-25 08:32 PM","wordCount":664},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/quickstart/index.html b/_site/articles/quickstart/index.html deleted file mode 100644 index 5c12594..0000000 --- a/_site/articles/quickstart/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

This topic describes how to develop applications using Unity, and how to create and build instances of objects. It assumes that you familiar with dependency injection and separation of concerns concepts.

\n

The Container

\n

Unity exposes very compact API to operate the container. The most operations related to registration, resolution, and lifetime management is exposed through one interface - IUnityContainer.

\n

To start using Unity you need to create an instance of the container and get reference to IUnityContainer interface:

\n
IUnityContainer container = new UnityContainer();\n
\n

Creating instances

\n

Once container is created you could start using it immediately:

\n
IUnityContainer container = new UnityContainer();\nvar value = container.Resolve<object>();\n\n// Calling Resolve<object>() is the same as \nvalue = new object(); \n
\n

It will create any type with accessible constructor. Consider following example:

\n
// Simple class Foo\npublic class Foo\n{\n    public Foo() { }\n\n    public Foo(object obj) { }\n\n    public Foo(string id, object obj) { }\n}\n\n// Create container\nIUnityContainer container = new UnityContainer();\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(object obj)'\n
\n

Foo is a simple class with three public constructors. When Resolve<Foo>() is called, Unity will evaluate available constructors and select one with longest list of parameters it can satisfy with dependencies. It will create all required dependencies and pass them to selected constructor during initialization.

\n

In this particular case Unity will select second constructor with parameter obj of type Object. Although constructor Foo(string id, object obj) is longer, it has parameter of type String which is a primitive type. Unity can not create primitive types by itself. If you want to make these available for dependency injection you would need to register them with the container. For Unity to select third constructor Foo(string id, object obj) you need to register string instance with container:

\n
// Register string instance\ncontainer.RegisterInstance("xyz");\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(string id, object obj)'\n
\n

For more information on how Unity selects members see Member Selection

\n

Type Mapping

\n

In service oriented architecture contracts are represented by interfaces and components implement these contracts to provide services. Consider these types:

\n
// Public service contract\npublic interface IService \n{\n    // Service API\n}\n\n\n// Component implementing the contract\npublic class Component : IService\n{\n    // Some logic here\n}\n\n\n// Service consumer\npublic class Foo\n{\n    public Foo(IService service)\n    {\n        // Some logic here\n    }\n}\n
\n

In this example we have IService interface defining an API and class Component implementing that API. Type Foo is a consumer of the service and should be injected by container with an instance of the service during initialization.

\n

If you just call container.Resolve<IService>() it will throw an exception complaining that it can not create an interface of type IService. You need to register a Type Mapping to instructs Unity how to create service of type IService:

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>();\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(IService service)'\n
\n

During the resolution, when Unity will try to satisfy dependencies, it will look for a registration for each dependency and will find this mapping. It will create Component and passes it to constructor of Foo as IService.

\n

For more information see Type Mapping

\n

Lifetime

\n

By default Unity creates a new instance every time type is requested. Instances it created are not tracked or managed by the container.

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>();\n\n// Resolve IService\nvar value1 = container.Resolve<IService>();\nvar value2 = container.Resolve<IService>();\n\n// value1 and value2 are not the same\n
\n

To enable lifetime management, type needs to be registered with one of the compatible lifetime managers. Depending on registration type Unity provides three helpers:

\n\n

For example, to make IService a singleton for the entire application and create it only once you would register it like this:

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>(TypeLifetime.Singleton);\n\n// Resolve IService\nvar value1 = container.Resolve<IService>();\nvar value2 = container.Resolve<IService>();\n\n// value1 and value2 are the same instance of Component\n
\n

For more information see Lifetime Management

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T01:18:55Z"},"_path":"articles/quickstart/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/articles/quickstart/","conceptual":"\n

This topic describes how to develop applications using Unity, and how to create and build instances of objects. It assumes that you familiar with dependency injection and separation of concerns concepts.

\n

The Container

\n

Unity exposes very compact API to operate the container. The most operations related to registration, resolution, and lifetime management is exposed through one interface - IUnityContainer.

\n

To start using Unity you need to create an instance of the container and get reference to IUnityContainer interface:

\n
IUnityContainer container = new UnityContainer();\n
\n

Creating instances

\n

Once container is created you could start using it immediately:

\n
IUnityContainer container = new UnityContainer();\nvar value = container.Resolve<object>();\n\n// Calling Resolve<object>() is the same as \nvalue = new object(); \n
\n

It will create any type with accessible constructor. Consider following example:

\n
// Simple class Foo\npublic class Foo\n{\n    public Foo() { }\n\n    public Foo(object obj) { }\n\n    public Foo(string id, object obj) { }\n}\n\n// Create container\nIUnityContainer container = new UnityContainer();\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(object obj)'\n
\n

Foo is a simple class with three public constructors. When Resolve<Foo>() is called, Unity will evaluate available constructors and select one with longest list of parameters it can satisfy with dependencies. It will create all required dependencies and pass them to selected constructor during initialization.

\n

In this particular case Unity will select second constructor with parameter obj of type Object. Although constructor Foo(string id, object obj) is longer, it has parameter of type String which is a primitive type. Unity can not create primitive types by itself. If you want to make these available for dependency injection you would need to register them with the container. For Unity to select third constructor Foo(string id, object obj) you need to register string instance with container:

\n
// Register string instance\ncontainer.RegisterInstance("xyz");\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(string id, object obj)'\n
\n

For more information on how Unity selects members see Member Selection

\n

Type Mapping

\n

In service oriented architecture contracts are represented by interfaces and components implement these contracts to provide services. Consider these types:

\n
// Public service contract\npublic interface IService \n{\n    // Service API\n}\n\n\n// Component implementing the contract\npublic class Component : IService\n{\n    // Some logic here\n}\n\n\n// Service consumer\npublic class Foo\n{\n    public Foo(IService service)\n    {\n        // Some logic here\n    }\n}\n
\n

In this example we have IService interface defining an API and class Component implementing that API. Type Foo is a consumer of the service and should be injected by container with an instance of the service during initialization.

\n

If you just call container.Resolve<IService>() it will throw an exception complaining that it can not create an interface of type IService. You need to register a Type Mapping to instructs Unity how to create service of type IService:

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>();\n\n// Resolve Foo\nvar value = container.Resolve<Foo>();\n\n// value created with constructor 'Foo(IService service)'\n
\n

During the resolution, when Unity will try to satisfy dependencies, it will look for a registration for each dependency and will find this mapping. It will create Component and passes it to constructor of Foo as IService.

\n

For more information see Type Mapping

\n

Lifetime

\n

By default Unity creates a new instance every time type is requested. Instances it created are not tracked or managed by the container.

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>();\n\n// Resolve IService\nvar value1 = container.Resolve<IService>();\nvar value2 = container.Resolve<IService>();\n\n// value1 and value2 are not the same\n
\n

To enable lifetime management, type needs to be registered with one of the compatible lifetime managers. Depending on registration type Unity provides three helpers:

\n\n

For example, to make IService a singleton for the entire application and create it only once you would register it like this:

\n
// Register mapping between IService and Component\ncontainer.RegisterType<IService, Component>(TypeLifetime.Singleton);\n\n// Resolve IService\nvar value1 = container.Resolve<IService>();\nvar value2 = container.Resolve<IService>();\n\n// value1 and value2 are the same instance of Component\n
\n

For more information see Lifetime Management

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/quickstart.md","depot_name":".","document_id":"1eb2a883-aa19-c5b5-593b-d6b67c1546f6","document_version_independent_id":"3c85a775-179c-fd58-72d6-437a7041a3f0","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/articles/quickstart.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/articles/quickstart.md","original_content_git_url_template":"{repo}/blob/{branch}/articles/quickstart.md","rawTitle":"

Using Unity in Applications

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Using Unity in Applications","uid":"Article.Unity.Using","updated_at":"2019-04-30 01:18 AM","wordCount":674},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/articles/toc.json b/_site/articles/toc.json deleted file mode 100644 index fae5c66..0000000 --- a/_site/articles/toc.json +++ /dev/null @@ -1 +0,0 @@ -{"metadata":{"_appTitle":"Unity Container","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appFaviconPath":"images/favicon.png"},"items":[{"name":"Introduction","href":"introduction/","uid":"Article.Unity.Introduction"},{"name":"Features","href":"features/","uid":"Article.Unity.Features"},{"name":"Design of Unity","href":"design/","uid":"Article.Unity.Design"},{"name":"Application Design","href":"application/","uid":"Article.Application.Design"},{"name":"Adding Unity to application","href":"installation/","uid":"Article.Unity.Install"},{"name":"Quick Start","href":"quickstart/","uid":"Article.Unity.Using"},{"name":"Change Log","href":"changelog/","uid":"Article.Change.Log"}]} \ No newline at end of file diff --git a/_site/filemap.json b/_site/filemap.json deleted file mode 100644 index f0ef25c..0000000 --- a/_site/filemap.json +++ /dev/null @@ -1 +0,0 @@ -{"host":"https://","locale":"en-us","base_path":"/","source_base_path":".","version_info":{},"from_docfx_v3":true,"file_mapping":{"api/index.md":{"type":"Content","output_relative_path":"api/index.html","asset_id":"api/index"},"articles/application.md":{"type":"Content","output_relative_path":"articles/application/index.html","asset_id":"articles/application"},"articles/changelog.md":{"type":"Content","output_relative_path":"articles/changelog/index.html","asset_id":"articles/changelog"},"articles/design.md":{"type":"Content","output_relative_path":"articles/design/index.html","asset_id":"articles/design"},"articles/features.md":{"type":"Content","output_relative_path":"articles/features/index.html","asset_id":"articles/features"},"articles/history.md":{"type":"Content","output_relative_path":"articles/history/index.html","asset_id":"articles/history"},"articles/installation.md":{"type":"Content","output_relative_path":"articles/installation/index.html","asset_id":"articles/installation"},"articles/introduction.md":{"type":"Content","output_relative_path":"articles/introduction/index.html","asset_id":"articles/introduction"},"articles/quickstart.md":{"type":"Content","output_relative_path":"articles/quickstart/index.html","asset_id":"articles/quickstart"},"images/favicon.png":{"type":"Resource","output_relative_path":"images/favicon.png","asset_id":"images/favicon.png"},"images/logo.svg":{"type":"Resource","output_relative_path":"images/logo.svg","asset_id":"images/logo.svg"},"images/resolver-override.png":{"type":"Resource","output_relative_path":"images/resolver-override.png","asset_id":"images/resolver-override.png"},"index.md":{"type":"Content","output_relative_path":"index.html","asset_id":"index"},"README.md":{"type":"Content","output_relative_path":"readme/index.html","asset_id":"readme"},"specs/constructor.md":{"type":"Content","output_relative_path":"specs/constructor/index.html","asset_id":"specs/constructor"},"specs/field.md":{"type":"Content","output_relative_path":"specs/field/index.html","asset_id":"specs/field"},"specs/hierarchy.md":{"type":"Content","output_relative_path":"specs/hierarchy/index.html","asset_id":"specs/hierarchy"},"specs/method.md":{"type":"Content","output_relative_path":"specs/method/index.html","asset_id":"specs/method"},"specs/property.md":{"type":"Content","output_relative_path":"specs/property/index.html","asset_id":"specs/property"},"specs/specification.md":{"type":"Content","output_relative_path":"specs/specification/index.html","asset_id":"specs/specification"},"specs/summary.md":{"type":"Content","output_relative_path":"specs/summary/index.html","asset_id":"specs/summary"},"specs/workflow.md":{"type":"Content","output_relative_path":"specs/workflow/index.html","asset_id":"specs/workflow"},"tutorials/Annotation/annotation.md":{"type":"Content","output_relative_path":"tutorials/annotation/annotation/index.html","asset_id":"tutorials/annotation/annotation"},"tutorials/Annotation/constructor.md":{"type":"Content","output_relative_path":"tutorials/annotation/constructor/index.html","asset_id":"tutorials/annotation/constructor"},"tutorials/Annotation/field.md":{"type":"Content","output_relative_path":"tutorials/annotation/field/index.html","asset_id":"tutorials/annotation/field"},"tutorials/Annotation/method.md":{"type":"Content","output_relative_path":"tutorials/annotation/method/index.html","asset_id":"tutorials/annotation/method"},"tutorials/Annotation/parameter.md":{"type":"Content","output_relative_path":"tutorials/annotation/parameter/index.html","asset_id":"tutorials/annotation/parameter"},"tutorials/Annotation/property.md":{"type":"Content","output_relative_path":"tutorials/annotation/property/index.html","asset_id":"tutorials/annotation/property"},"tutorials/Composition/BuildUp/buildup.md":{"type":"Content","output_relative_path":"tutorials/composition/buildup/buildup/index.html","asset_id":"tutorials/composition/buildup/buildup"},"tutorials/Composition/collections.md":{"type":"Content","output_relative_path":"tutorials/composition/collections/index.html","asset_id":"tutorials/composition/collections"},"tutorials/Composition/composition.md":{"type":"Content","output_relative_path":"tutorials/composition/composition/index.html","asset_id":"tutorials/composition/composition"},"tutorials/Composition/Generics/deferred.md":{"type":"Content","output_relative_path":"tutorials/composition/generics/deferred/index.html","asset_id":"tutorials/composition/generics/deferred"},"tutorials/Composition/Generics/generics.md":{"type":"Content","output_relative_path":"tutorials/composition/generics/generics/index.html","asset_id":"tutorials/composition/generics/generics"},"tutorials/Composition/Generics/lazy.md":{"type":"Content","output_relative_path":"tutorials/composition/generics/lazy/index.html","asset_id":"tutorials/composition/generics/lazy"},"tutorials/Composition/Generics/metadata.md":{"type":"Content","output_relative_path":"tutorials/composition/generics/metadata/index.html","asset_id":"tutorials/composition/generics/metadata"},"tutorials/Composition/Mapping/generic.md":{"type":"Content","output_relative_path":"tutorials/composition/mapping/generic/index.html","asset_id":"tutorials/composition/mapping/generic"},"tutorials/Composition/Mapping/implementation.md":{"type":"Content","output_relative_path":"tutorials/composition/mapping/implementation/index.html","asset_id":"tutorials/composition/mapping/implementation"},"tutorials/Composition/Mapping/mapping.md":{"type":"Content","output_relative_path":"tutorials/composition/mapping/mapping/index.html","asset_id":"tutorials/composition/mapping/mapping"},"tutorials/Composition/Overrides/dependency.md":{"type":"Content","output_relative_path":"tutorials/composition/overrides/dependency/index.html","asset_id":"tutorials/composition/overrides/dependency"},"tutorials/Composition/Overrides/field.md":{"type":"Content","output_relative_path":"tutorials/composition/overrides/field/index.html","asset_id":"tutorials/composition/overrides/field"},"tutorials/Composition/Overrides/override.md":{"type":"Content","output_relative_path":"tutorials/composition/overrides/override/index.html","asset_id":"tutorials/composition/overrides/override"},"tutorials/Composition/Overrides/parameter.md":{"type":"Content","output_relative_path":"tutorials/composition/overrides/parameter/index.html","asset_id":"tutorials/composition/overrides/parameter"},"tutorials/Composition/Overrides/property.md":{"type":"Content","output_relative_path":"tutorials/composition/overrides/property/index.html","asset_id":"tutorials/composition/overrides/property"},"tutorials/Composition/Resolution/resolution.md":{"type":"Content","output_relative_path":"tutorials/composition/resolution/resolution/index.html","asset_id":"tutorials/composition/resolution/resolution"},"tutorials/Composition/Resolution/type.md":{"type":"Content","output_relative_path":"tutorials/composition/resolution/type/index.html","asset_id":"tutorials/composition/resolution/type"},"tutorials/Composition/Selection/constructor.md":{"type":"Content","output_relative_path":"tutorials/composition/selection/constructor/index.html","asset_id":"tutorials/composition/selection/constructor"},"tutorials/Composition/Selection/selection.md":{"type":"Content","output_relative_path":"tutorials/composition/selection/selection/index.html","asset_id":"tutorials/composition/selection/selection"},"tutorials/definitions.md":{"type":"Content","output_relative_path":"tutorials/definitions/index.html","asset_id":"tutorials/definitions"},"tutorials/Extensions/activation.md":{"type":"Content","output_relative_path":"tutorials/extensions/activation/index.html","asset_id":"tutorials/extensions/activation"},"tutorials/Extensions/compilation.md":{"type":"Content","output_relative_path":"tutorials/extensions/compilation/index.html","asset_id":"tutorials/extensions/compilation"},"tutorials/Extensions/diagnostic.md":{"type":"Content","output_relative_path":"tutorials/extensions/diagnostic/index.html","asset_id":"tutorials/extensions/diagnostic"},"tutorials/Extensions/extensions.md":{"type":"Content","output_relative_path":"tutorials/extensions/extensions/index.html","asset_id":"tutorials/extensions/extensions"},"tutorials/Extensions/legacy.md":{"type":"Content","output_relative_path":"tutorials/extensions/legacy/index.html","asset_id":"tutorials/extensions/legacy"},"tutorials/hierarchies.md":{"type":"Content","output_relative_path":"tutorials/hierarchies/index.html","asset_id":"tutorials/hierarchies"},"tutorials/lifetime/container.md":{"type":"Content","output_relative_path":"tutorials/lifetime/container/index.html","asset_id":"tutorials/lifetime/container"},"tutorials/lifetime/container_transient.md":{"type":"Content","output_relative_path":"tutorials/lifetime/container_transient/index.html","asset_id":"tutorials/lifetime/container_transient"},"tutorials/lifetime/disposal.md":{"type":"Content","output_relative_path":"tutorials/lifetime/disposal/index.html","asset_id":"tutorials/lifetime/disposal"},"tutorials/lifetime/external.md":{"type":"Content","output_relative_path":"tutorials/lifetime/external/index.html","asset_id":"tutorials/lifetime/external"},"tutorials/lifetime/hierarchical.md":{"type":"Content","output_relative_path":"tutorials/lifetime/hierarchical/index.html","asset_id":"tutorials/lifetime/hierarchical"},"tutorials/lifetime/lifetime.md":{"type":"Content","output_relative_path":"tutorials/lifetime/lifetime/index.html","asset_id":"tutorials/lifetime/lifetime"},"tutorials/lifetime/managers.md":{"type":"Content","output_relative_path":"tutorials/lifetime/managers/index.html","asset_id":"tutorials/lifetime/managers"},"tutorials/lifetime/resolve.md":{"type":"Content","output_relative_path":"tutorials/lifetime/resolve/index.html","asset_id":"tutorials/lifetime/resolve"},"tutorials/lifetime/singleton.md":{"type":"Content","output_relative_path":"tutorials/lifetime/singleton/index.html","asset_id":"tutorials/lifetime/singleton"},"tutorials/lifetime/thread.md":{"type":"Content","output_relative_path":"tutorials/lifetime/thread/index.html","asset_id":"tutorials/lifetime/thread"},"tutorials/lifetime/transient.md":{"type":"Content","output_relative_path":"tutorials/lifetime/transient/index.html","asset_id":"tutorials/lifetime/transient"},"tutorials/registration/factory.md":{"type":"Content","output_relative_path":"tutorials/registration/factory/index.html","asset_id":"tutorials/registration/factory"},"tutorials/registration/instance.md":{"type":"Content","output_relative_path":"tutorials/registration/instance/index.html","asset_id":"tutorials/registration/instance"},"tutorials/registration/metadata.md":{"type":"Content","output_relative_path":"tutorials/registration/metadata/index.html","asset_id":"tutorials/registration/metadata"},"tutorials/registration/registration.md":{"type":"Content","output_relative_path":"tutorials/registration/registration/index.html","asset_id":"tutorials/registration/registration"},"tutorials/registration/Type/Constructor/annotation.md":{"type":"Content","output_relative_path":"tutorials/registration/type/constructor/annotation/index.html","asset_id":"tutorials/registration/type/constructor/annotation"},"tutorials/registration/Type/Constructor/automatic.md":{"type":"Content","output_relative_path":"tutorials/registration/type/constructor/automatic/index.html","asset_id":"tutorials/registration/type/constructor/automatic"},"tutorials/registration/Type/Constructor/constructor.md":{"type":"Content","output_relative_path":"tutorials/registration/type/constructor/constructor/index.html","asset_id":"tutorials/registration/type/constructor/constructor"},"tutorials/registration/Type/Constructor/param_count.md":{"type":"Content","output_relative_path":"tutorials/registration/type/constructor/param_count/index.html","asset_id":"tutorials/registration/type/constructor/param_count"},"tutorials/registration/Type/Constructor/param_none.md":{"type":"Content","output_relative_path":"tutorials/registration/type/constructor/param_none/index.html","asset_id":"tutorials/registration/type/constructor/param_none"},"tutorials/registration/Type/Constructor/param_types.md":{"type":"Content","output_relative_path":"tutorials/registration/type/constructor/param_types/index.html","asset_id":"tutorials/registration/type/constructor/param_types"},"tutorials/registration/Type/Constructor/param_values.md":{"type":"Content","output_relative_path":"tutorials/registration/type/constructor/param_values/index.html","asset_id":"tutorials/registration/type/constructor/param_values"},"tutorials/registration/Type/field.md":{"type":"Content","output_relative_path":"tutorials/registration/type/field/index.html","asset_id":"tutorials/registration/type/field"},"tutorials/registration/Type/Injection/default.md":{"type":"Content","output_relative_path":"tutorials/registration/type/injection/default/index.html","asset_id":"tutorials/registration/type/injection/default"},"tutorials/registration/Type/Injection/injected.md":{"type":"Content","output_relative_path":"tutorials/registration/type/injection/injected/index.html","asset_id":"tutorials/registration/type/injection/injected"},"tutorials/registration/Type/Injection/injection.md":{"type":"Content","output_relative_path":"tutorials/registration/type/injection/injection/index.html","asset_id":"tutorials/registration/type/injection/injection"},"tutorials/registration/Type/Injection/resolved.md":{"type":"Content","output_relative_path":"tutorials/registration/type/injection/resolved/index.html","asset_id":"tutorials/registration/type/injection/resolved"},"tutorials/registration/Type/method.md":{"type":"Content","output_relative_path":"tutorials/registration/type/method/index.html","asset_id":"tutorials/registration/type/method"},"tutorials/registration/Type/parameter.md":{"type":"Content","output_relative_path":"tutorials/registration/type/parameter/index.html","asset_id":"tutorials/registration/type/parameter"},"tutorials/registration/Type/property.md":{"type":"Content","output_relative_path":"tutorials/registration/type/property/index.html","asset_id":"tutorials/registration/type/property"},"tutorials/registration/Type/registration.md":{"type":"Content","output_relative_path":"tutorials/registration/type/registration/index.html","asset_id":"tutorials/registration/type/registration"}}} \ No newline at end of file diff --git a/_site/full-dependent-list.txt b/_site/full-dependent-list.txt deleted file mode 100644 index f97f279..0000000 --- a/_site/full-dependent-list.txt +++ /dev/null @@ -1,345 +0,0 @@ -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\api\\index.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\api\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\application.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\changelog.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\design.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\application.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\design.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\features.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\history.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\installation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\introduction.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\selection.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\application.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\changelog.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\design.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\features.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\installation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\introduction.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\index.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\README.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\hierarchy.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\specification.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\specification.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\workflow.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\summary.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\field.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\method.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\property.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\specification.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\workflow.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\api\\toc.yml"} -{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\introduction.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\field.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\parameter.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\property.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\parameter.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\field.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\parameter.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\property.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\buildup.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\buildup.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\collections.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\composition.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\composition.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\deferred.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\generics.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\lazy.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\deferred.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\lazy.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\metadata.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\generic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\implementation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\generic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\implementation.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\dependency.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\dependency.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\field.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\parameter.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\property.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\parameter.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\dependency.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\field.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\parameter.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\property.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\collections.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\deferred.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\generics.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\type.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md"} -{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\type.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\type.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\selection.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\toc.yml"} -{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\collections.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\definitions.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\activation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\compilation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\extensions.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\legacy.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\activation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\compilation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\legacy.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\disposal.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md"} -{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\default.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\injected.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\injection.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\resolved.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\default.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\injected.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\resolved.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\parameter.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\field.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\method.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\property.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\field.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\method.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\property.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml"} \ No newline at end of file diff --git a/_site/index.html b/_site/index.html deleted file mode 100644 index 0910130..0000000 --- a/_site/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Overview

\n

The Unity Container (Unity) is a lightweight, extensible dependency injection container. It facilitates building loosely coupled applications and provides developers with the following advantages:

\n
    \n
  • Simplified object creation, especially for hierarchical object structures and dependencies
  • \n
  • Abstraction of requirements; this allows developers to specify dependencies at run time or in configuration and simplify management of crosscutting concerns
  • \n
  • Increased flexibility by deferring component configuration to the container
  • \n
  • Service location capability; this allows clients to store or cache the container
  • \n
  • Instance and type interception
  • \n
  • Registration by convention
  • \n
\n

Issues and Contributions

\n
    \n
  • If something is broken and you know how to fix it, send a pull request.
  • \n
  • If you have no idea what is wrong, create an issue
  • \n
\n

Any feedback and contributions are welcome

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/16/2019","updated_at_date_time":"2019-03-16T23:50:26Z"},"_path":"index.html","_tocRel":"toc.json","canonical_url":"https:///en-us/","conceptual":"\n

Overview

\n

The Unity Container (Unity) is a lightweight, extensible dependency injection container. It facilitates building loosely coupled applications and provides developers with the following advantages:

\n
    \n
  • Simplified object creation, especially for hierarchical object structures and dependencies
  • \n
  • Abstraction of requirements; this allows developers to specify dependencies at run time or in configuration and simplify management of crosscutting concerns
  • \n
  • Increased flexibility by deferring component configuration to the container
  • \n
  • Service location capability; this allows clients to store or cache the container
  • \n
  • Instance and type interception
  • \n
  • Registration by convention
  • \n
\n

Issues and Contributions

\n
    \n
  • If something is broken and you know how to fix it, send a pull request.
  • \n
  • If you have no idea what is wrong, create an issue
  • \n
\n

Any feedback and contributions are welcome

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/index.md","depot_name":".","document_id":"b3c1f04b-5bdb-1c10-5237-024cf382b4cc","document_version_independent_id":"a79c6ec2-6514-508d-7d8a-5afe2098424f","gitcommit":"https://github.com/unitycontainer/documentation/blob/16b05445e1104378b26179a5de654cade919d174/index.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/index.md","original_content_git_url_template":"{repo}/blob/{branch}/index.md","rawTitle":"

Welcome to Unity Container Documentation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Welcome to Unity Container Documentation","updated_at":"2019-03-16 11:50 PM","wordCount":119},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"_themes"} \ No newline at end of file diff --git a/_site/op_aggregated_file_map_info.json b/_site/op_aggregated_file_map_info.json deleted file mode 100644 index f14206f..0000000 --- a/_site/op_aggregated_file_map_info.json +++ /dev/null @@ -1 +0,0 @@ -{"aggregated_file_map_items":{"api/index.md":{"dependencies":[{"from_file_path":"api/index.md","to_file_path":"api/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/application.md":{"dependencies":[{"from_file_path":"articles/application.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/changelog.md":{"dependencies":[{"from_file_path":"articles/changelog.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/design.md":{"dependencies":[{"from_file_path":"articles/design.md","to_file_path":"articles/application.md","dependency_type":"uid"},{"from_file_path":"articles/design.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/features.md":{"dependencies":[{"from_file_path":"articles/features.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/history.md":{"dependencies":[{"from_file_path":"articles/history.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/installation.md":{"dependencies":[{"from_file_path":"articles/installation.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/introduction.md":{"dependencies":[{"from_file_path":"articles/introduction.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"articles/quickstart.md":{"dependencies":[{"from_file_path":"articles/quickstart.md","to_file_path":"articles/toc.yml","dependency_type":"metadata"},{"from_file_path":"articles/quickstart.md","to_file_path":"tutorials/Composition/Mapping/mapping.md","dependency_type":"uid"},{"from_file_path":"articles/quickstart.md","to_file_path":"tutorials/Composition/Selection/selection.md","dependency_type":"uid"},{"from_file_path":"articles/quickstart.md","to_file_path":"tutorials/lifetime/lifetime.md","dependency_type":"uid"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"index.md":{"dependencies":[{"from_file_path":"index.md","to_file_path":"toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"README.md":{"dependencies":[{"from_file_path":"README.md","to_file_path":"toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/constructor.md":{"dependencies":[{"from_file_path":"specs/constructor.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/field.md":{"dependencies":[{"from_file_path":"specs/field.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/hierarchy.md":{"dependencies":[{"from_file_path":"specs/hierarchy.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/method.md":{"dependencies":[{"from_file_path":"specs/method.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/property.md":{"dependencies":[{"from_file_path":"specs/property.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/specification.md":{"dependencies":[{"from_file_path":"specs/specification.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"},{"from_file_path":"specs/specification.md","to_file_path":"specs/workflow.md","dependency_type":"include"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/summary.md":{"dependencies":[{"from_file_path":"specs/summary.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"specs/workflow.md":{"dependencies":[{"from_file_path":"specs/workflow.md","to_file_path":"specs/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Annotation/annotation.md":{"dependencies":[{"from_file_path":"tutorials/Annotation/annotation.md","to_file_path":"tutorials/Annotation/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/annotation.md","to_file_path":"tutorials/Annotation/field.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/annotation.md","to_file_path":"tutorials/Annotation/method.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/annotation.md","to_file_path":"tutorials/Annotation/parameter.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/annotation.md","to_file_path":"tutorials/Annotation/property.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/annotation.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Annotation/constructor.md":{"dependencies":[{"from_file_path":"tutorials/Annotation/constructor.md","to_file_path":"tutorials/Composition/Selection/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/constructor.md","to_file_path":"tutorials/Extensions/diagnostic.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/constructor.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Annotation/field.md":{"dependencies":[{"from_file_path":"tutorials/Annotation/field.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Annotation/method.md":{"dependencies":[{"from_file_path":"tutorials/Annotation/method.md","to_file_path":"tutorials/Extensions/diagnostic.md","dependency_type":"uid"},{"from_file_path":"tutorials/Annotation/method.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Annotation/parameter.md":{"dependencies":[{"from_file_path":"tutorials/Annotation/parameter.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Annotation/property.md":{"dependencies":[{"from_file_path":"tutorials/Annotation/property.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/BuildUp/buildup.md":{"dependencies":[{"from_file_path":"tutorials/Composition/BuildUp/buildup.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/collections.md":{"dependencies":[{"from_file_path":"tutorials/Composition/collections.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/composition.md":{"dependencies":[{"from_file_path":"tutorials/Composition/composition.md","to_file_path":"tutorials/Composition/Resolution/resolution.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/composition.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Generics/deferred.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Generics/deferred.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Generics/generics.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Generics/generics.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Generics/lazy.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Generics/lazy.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Generics/metadata.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Generics/metadata.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Mapping/generic.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Mapping/generic.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Mapping/implementation.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Mapping/implementation.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Mapping/mapping.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Mapping/mapping.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Overrides/dependency.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Overrides/dependency.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Overrides/field.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Overrides/field.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Overrides/override.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Overrides/override.md","to_file_path":"tutorials/Composition/Overrides/dependency.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Overrides/override.md","to_file_path":"tutorials/Composition/Overrides/field.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Overrides/override.md","to_file_path":"tutorials/Composition/Overrides/parameter.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Overrides/override.md","to_file_path":"tutorials/Composition/Overrides/property.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Overrides/override.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Overrides/parameter.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Overrides/parameter.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Overrides/property.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Overrides/property.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Resolution/resolution.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Resolution/resolution.md","to_file_path":"tutorials/Composition/collections.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Resolution/resolution.md","to_file_path":"tutorials/Composition/Generics/deferred.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Resolution/resolution.md","to_file_path":"tutorials/Composition/Generics/generics.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Resolution/resolution.md","to_file_path":"tutorials/Composition/Overrides/override.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Resolution/resolution.md","to_file_path":"tutorials/Composition/Resolution/type.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Resolution/resolution.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Resolution/type.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Resolution/type.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Selection/constructor.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Selection/constructor.md","to_file_path":"tutorials/Annotation/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Selection/constructor.md","to_file_path":"tutorials/Annotation/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Selection/constructor.md","to_file_path":"tutorials/Extensions/diagnostic.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Selection/constructor.md","to_file_path":"tutorials/registration/metadata.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Selection/constructor.md","to_file_path":"tutorials/registration/registration.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Selection/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/Composition/Selection/constructor.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Composition/Selection/selection.md":{"dependencies":[{"from_file_path":"tutorials/Composition/Selection/selection.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/definitions.md":{"dependencies":[{"from_file_path":"tutorials/definitions.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Extensions/activation.md":{"dependencies":[{"from_file_path":"tutorials/Extensions/activation.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Extensions/compilation.md":{"dependencies":[{"from_file_path":"tutorials/Extensions/compilation.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Extensions/diagnostic.md":{"dependencies":[{"from_file_path":"tutorials/Extensions/diagnostic.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Extensions/extensions.md":{"dependencies":[{"from_file_path":"tutorials/Extensions/extensions.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/Extensions/legacy.md":{"dependencies":[{"from_file_path":"tutorials/Extensions/legacy.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/hierarchies.md":{"dependencies":[{"from_file_path":"tutorials/hierarchies.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/container.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/container_transient.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/registration/factory.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/registration/instance.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/registration/Type/registration.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/container_transient.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/disposal.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/disposal.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/external.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/registration/instance.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/external.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/hierarchical.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/registration/factory.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/registration/instance.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/registration/Type/registration.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/hierarchical.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/lifetime.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/lifetime.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/managers.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/managers.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/resolve.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/registration/factory.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/registration/instance.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/registration/Type/registration.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/resolve.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/singleton.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/singleton.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/thread.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/lifetime/transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/registration/factory.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/registration/instance.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/registration/Type/registration.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/thread.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/lifetime/transient.md":{"dependencies":[{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/container.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/container_transient.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/external.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/hierarchical.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/managers.md","dependency_type":"include"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/resolve.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/singleton.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/lifetime/thread.md","dependency_type":"uid"},{"from_file_path":"tutorials/lifetime/transient.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/factory.md":{"dependencies":[{"from_file_path":"tutorials/registration/factory.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/instance.md":{"dependencies":[{"from_file_path":"tutorials/registration/instance.md","to_file_path":"tutorials/Composition/Mapping/mapping.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/instance.md","to_file_path":"tutorials/registration/metadata.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/instance.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/metadata.md":{"dependencies":[{"from_file_path":"tutorials/registration/metadata.md","to_file_path":"tutorials/Composition/Mapping/mapping.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/metadata.md","to_file_path":"tutorials/lifetime/lifetime.md","dependency_type":"file"},{"from_file_path":"tutorials/registration/metadata.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/registration.md":{"dependencies":[{"from_file_path":"tutorials/registration/registration.md","to_file_path":"tutorials/hierarchies.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/registration.md","to_file_path":"tutorials/registration/factory.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/registration.md","to_file_path":"tutorials/registration/instance.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/registration.md","to_file_path":"tutorials/registration/Type/registration.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/registration.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Constructor/annotation.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/Annotation/constructor.md","dependency_type":"include"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/Composition/Selection/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/Extensions/diagnostic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/registration/Type/Constructor/automatic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/registration/Type/Constructor/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/registration/Type/Constructor/param_count.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/registration/Type/Constructor/param_none.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/registration/Type/Constructor/param_types.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/registration/Type/Constructor/param_values.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/annotation.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Constructor/automatic.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/Annotation/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/Annotation/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/Composition/Selection/constructor.md","dependency_type":"include"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/Extensions/diagnostic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/metadata.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/registration.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/Type/Constructor/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/Type/Constructor/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/Type/Constructor/param_count.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/Type/Constructor/param_none.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/Type/Constructor/param_types.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/registration/Type/Constructor/param_values.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/automatic.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Constructor/constructor.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/Annotation/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/Extensions/diagnostic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/automatic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/param_count.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/param_none.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/param_types.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/registration/Type/Constructor/param_values.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/constructor.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Constructor/param_count.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Constructor/param_count.md","to_file_path":"tutorials/registration/Type/Constructor/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_count.md","to_file_path":"tutorials/registration/Type/Constructor/automatic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_count.md","to_file_path":"tutorials/registration/Type/Constructor/param_none.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_count.md","to_file_path":"tutorials/registration/Type/Constructor/param_types.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_count.md","to_file_path":"tutorials/registration/Type/Constructor/param_values.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_count.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Constructor/param_none.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Constructor/param_none.md","to_file_path":"tutorials/Extensions/diagnostic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_none.md","to_file_path":"tutorials/registration/Type/Constructor/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_none.md","to_file_path":"tutorials/registration/Type/Constructor/automatic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_none.md","to_file_path":"tutorials/registration/Type/Constructor/param_count.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_none.md","to_file_path":"tutorials/registration/Type/Constructor/param_types.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_none.md","to_file_path":"tutorials/registration/Type/Constructor/param_values.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_none.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Constructor/param_types.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Constructor/param_types.md","to_file_path":"tutorials/registration/Type/Constructor/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_types.md","to_file_path":"tutorials/registration/Type/Constructor/automatic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_types.md","to_file_path":"tutorials/registration/Type/Constructor/param_count.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_types.md","to_file_path":"tutorials/registration/Type/Constructor/param_none.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_types.md","to_file_path":"tutorials/registration/Type/Constructor/param_values.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_types.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Constructor/param_values.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Constructor/param_values.md","to_file_path":"tutorials/registration/Type/Constructor/annotation.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_values.md","to_file_path":"tutorials/registration/Type/Constructor/automatic.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_values.md","to_file_path":"tutorials/registration/Type/Constructor/param_count.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_values.md","to_file_path":"tutorials/registration/Type/Constructor/param_none.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_values.md","to_file_path":"tutorials/registration/Type/Constructor/param_types.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/Constructor/param_values.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/field.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/field.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Injection/default.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Injection/default.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Injection/injected.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Injection/injected.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Injection/injection.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Injection/injection.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/Injection/resolved.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/Injection/resolved.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/method.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/method.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/parameter.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/parameter.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/property.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/property.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"},"tutorials/registration/Type/registration.md":{"dependencies":[{"from_file_path":"tutorials/registration/Type/registration.md","to_file_path":"tutorials/lifetime/lifetime.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/registration.md","to_file_path":"tutorials/registration/Type/Constructor/constructor.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/registration.md","to_file_path":"tutorials/registration/Type/field.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/registration.md","to_file_path":"tutorials/registration/Type/method.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/registration.md","to_file_path":"tutorials/registration/Type/property.md","dependency_type":"uid"},{"from_file_path":"tutorials/registration/Type/registration.md","to_file_path":"tutorials/toc.yml","dependency_type":"metadata"}],"docset_names":[""],"has_non_moniker_url":true,"type":"Content"}},"docset_infos":{"":{"docset_name":"","docset_path_to_root":""}}} \ No newline at end of file diff --git a/_site/readme/index.html b/_site/readme/index.html deleted file mode 100644 index 97da97a..0000000 --- a/_site/readme/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"

\"Build

\n

Unity Documentation

\n

This repository hosts source files and instructions for building Unity documentation site: https://unitycontainer.github.io

\n

If you'd like to contribute documentation or report an issue please do it in this repository.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/24/2019","updated_at_date_time":"2019-04-24T23:00:26Z"},"_path":"readme/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/readme/","conceptual":"

\"Build

\n

Unity Documentation

\n

This repository hosts source files and instructions for building Unity documentation site: https://unitycontainer.github.io

\n

If you'd like to contribute documentation or report an issue please do it in this repository.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/README.md","depot_name":".","document_id":"fa044e91-957c-6e6a-c3ea-f34d2312c709","document_version_independent_id":"394d5e5a-5a94-224f-1e9d-b5f0091e3023","gitcommit":"https://github.com/unitycontainer/documentation/blob/5792a5d4ced17c39833a82a94f817173edd8b1e8/README.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/README.md","original_content_git_url_template":"{repo}/blob/{branch}/README.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Documentation","updated_at":"2019-04-24 11:00 PM","wordCount":31},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\_themes"} \ No newline at end of file diff --git a/_site/server-side-dependent-list.txt b/_site/server-side-dependent-list.txt deleted file mode 100644 index f97f279..0000000 --- a/_site/server-side-dependent-list.txt +++ /dev/null @@ -1,345 +0,0 @@ -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\api\\index.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\api\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\application.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\changelog.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\design.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\application.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\design.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\features.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\history.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\installation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\introduction.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\selection.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\application.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\changelog.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\design.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\features.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\installation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\introduction.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\quickstart.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\index.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\README.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\hierarchy.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\specification.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\specification.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\workflow.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\summary.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\field.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\method.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\property.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\specification.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\workflow.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\specs\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\api\\toc.yml"} -{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\introduction.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\articles\\toc.yml"} -{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\field.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\parameter.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\property.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\parameter.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\field.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\method.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\parameter.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\property.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\buildup.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\buildup.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\collections.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\composition.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\composition.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\deferred.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\generics.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\lazy.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\deferred.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\lazy.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\metadata.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\generic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\implementation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\generic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\implementation.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\dependency.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\dependency.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\field.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\parameter.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\property.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\parameter.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\dependency.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\field.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\parameter.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\property.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\collections.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\deferred.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\generics.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\override.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\type.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\resolution.md"} -{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\type.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\type.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\selection.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\BuildUp\\toc.yml"} -{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\collections.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Generics\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Overrides\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Resolution\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\definitions.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\activation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\compilation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\extensions.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\legacy.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\activation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\compilation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\legacy.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\disposal.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\container_transient.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\external.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\hierarchical.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\managers.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\resolve.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\singleton.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\thread.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\transient.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Mapping\\mapping.md"} -{"dependency_type":"file","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\factory.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\instance.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\Selection\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\metadata.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\registration.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\diagnostic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_values.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\annotation.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\automatic.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_count.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_none.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\param_types.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\field.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\default.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\injected.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\injection.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\resolved.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\default.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\injected.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\resolved.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\method.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\parameter.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\property.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\lifetime.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\constructor.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\field.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\method.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\property.md"} -{"dependency_type":"metadata","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\registration.md","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Constructor\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\field.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\Injection\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\method.md"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\Type\\property.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Annotation\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Composition\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\Extensions\\toc.yml"} -{"dependency_type":"uid","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\hierarchies.md"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\lifetime\\toc.yml"} -{"dependency_type":"include","from_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\toc.yml","to_file_path":"P:\\Unity Container\\Develop\\Documentation\\tutorials\\registration\\toc.yml"} \ No newline at end of file diff --git a/_site/specs/constructor/index.html b/_site/specs/constructor/index.html deleted file mode 100644 index 5cb0914..0000000 --- a/_site/specs/constructor/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/5/2019","updated_at_date_time":"2019-03-05T04:11:35Z"},"_path":"specs/constructor/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/constructor/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/constructor.md","depot_name":".","document_id":"9126e7af-2f05-1f78-b222-208d57a3bbb1","document_version_independent_id":"4409ebf6-cdc5-f9d9-28e6-71bf0dc9ec0d","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/constructor.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/constructor.md","rawTitle":"

Constructor Invocation Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Constructor Invocation Specification","uid":"Specification.Constructor","updated_at":"2019-03-05 04:11 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/specs/field/index.html b/_site/specs/field/index.html deleted file mode 100644 index ffd1161..0000000 --- a/_site/specs/field/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/5/2019","updated_at_date_time":"2019-03-05T04:11:35Z"},"_path":"specs/field/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/field/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/field.md","depot_name":".","document_id":"21325644-f894-73be-1ffe-22351adaad7b","document_version_independent_id":"532ca89a-e39a-c516-ca5b-83cc77530ab6","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/field.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/field.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/field.md","rawTitle":"

Field Injection Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Field Injection Specification","uid":"Specification.Field","updated_at":"2019-03-05 04:11 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/specs/hierarchy/index.html b/_site/specs/hierarchy/index.html deleted file mode 100644 index c4ceac2..0000000 --- a/_site/specs/hierarchy/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/5/2019","updated_at_date_time":"2019-03-05T04:11:35Z"},"_path":"specs/hierarchy/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/hierarchy/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/hierarchy.md","depot_name":".","document_id":"cf95aa64-1190-5120-381c-3c4424395527","document_version_independent_id":"defd991b-323a-be9a-4b2f-89bdff23d53f","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/hierarchy.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/hierarchy.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/hierarchy.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","updated_at":"2019-03-05 04:11 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/specs/method/index.html b/_site/specs/method/index.html deleted file mode 100644 index 45d6717..0000000 --- a/_site/specs/method/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Method invocation is an optional step you can add to the created object's initialization. Any accessible method could be invoked, provided Unity can satisfy all the parameters with appropriate values.

\n

Supported Methods

\n

Any accessible method of constructed type can be invoked during initialization.

\n

Multiple methods can be configured for invokation.

\n

Generic methods

\n

Only closed generic methods can be invoked during initialization.

\n

Restrictions

\n

Static methods cannot be invoked

\n

Unity does not support invocation of static methods.

\n

Methods with ref or out parameters cannot be invoked

\n

Invoking methods containing ref or out parameters is not supported.

\n

Invoking private and protected methods is not allowed

\n

Although it is technically possible to call private and protected methods of the class, Unity does not support this feature. This restriction is implemented to impose consistency with accessibility principles of C# language.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/5/2019","updated_at_date_time":"2019-03-05T04:11:35Z"},"_path":"specs/method/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/method/","conceptual":"\n

Method invocation is an optional step you can add to the created object's initialization. Any accessible method could be invoked, provided Unity can satisfy all the parameters with appropriate values.

\n

Supported Methods

\n

Any accessible method of constructed type can be invoked during initialization.

\n

Multiple methods can be configured for invokation.

\n

Generic methods

\n

Only closed generic methods can be invoked during initialization.

\n

Restrictions

\n

Static methods cannot be invoked

\n

Unity does not support invocation of static methods.

\n

Methods with ref or out parameters cannot be invoked

\n

Invoking methods containing ref or out parameters is not supported.

\n

Invoking private and protected methods is not allowed

\n

Although it is technically possible to call private and protected methods of the class, Unity does not support this feature. This restriction is implemented to impose consistency with accessibility principles of C# language.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/method.md","depot_name":".","document_id":"f07424a8-34d7-92fa-61b3-a4e680ff7cbc","document_version_independent_id":"8efce70f-f741-dcef-7f20-e6b8d20c4c96","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/method.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/method.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/method.md","rawTitle":"

Method Invocation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Method Invocation","uid":"Specification.Method","updated_at":"2019-03-05 04:11 AM","wordCount":135},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/specs/property/index.html b/_site/specs/property/index.html deleted file mode 100644 index 8e86598..0000000 --- a/_site/specs/property/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/5/2019","updated_at_date_time":"2019-03-05T04:11:35Z"},"_path":"specs/property/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/property/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/property.md","depot_name":".","document_id":"339f73ff-b58d-aa2b-9b70-0699fe989112","document_version_independent_id":"4ee9895a-57be-0951-3adc-89b15a05f315","gitcommit":"https://github.com/unitycontainer/documentation/blob/e172c00bcb414f0015d79f080e3f6378a7b8d8e7/specs/property.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/property.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/property.md","rawTitle":"

Property Injection Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Injection Specification","uid":"Specification.Property","updated_at":"2019-03-05 04:11 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/specs/specification/index.html b/_site/specs/specification/index.html deleted file mode 100644 index 6d622dd..0000000 --- a/_site/specs/specification/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

1 Introduction

\n

Unity is a full featured, general-purpose container for use in any type of Microsoft® .NET Framework-based application. It provides all of the features commonly found in dependency injection implementations.

\n

In addition, Unity is extensible. You can write container extensions that change the behavior of the container, or add new capabilities. For example, the interception feature provided by Unity, which you can use to add policies to objects, is implemented as a container extension.

\n

2 Terms and Definitions

\n

2.1 Injection

\n

2.2 Dependency

\n

2.3 Contract

\n
    \n
  • Type
  • \n
  • Name
  • \n
\n

2.4 Metadata

\n

2.5 Lifetime

\n

3 Workflow

\n

Setup

\n

Before container could be used it should be prepared for operation.

\n

Creating Container

\n
Root
\n
Scopes
\n

Type Contracts

\n
Implicit
\n
Mapping
\n
Explicit
\n
    \n
  • Instance
  • \n
  • Factory
  • \n
  • Type
  • \n
\n

Provide Services

\n

Locate Contract

\n
Existing
\n
Hierarchical
\n
None
\n
Create Locally
\n
With the registration
\n
At the root
\n

Execute contract

\n
From lifetime manager
\n
From pipeline
\n

Manage created objects

\n

Teardown

\n

Dispose child scopes

\n

Dispose managed objects

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/6/2019","updated_at_date_time":"2019-03-06T23:21:05Z"},"_path":"specs/specification/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/specification/","conceptual":"\n

1 Introduction

\n

Unity is a full featured, general-purpose container for use in any type of Microsoft® .NET Framework-based application. It provides all of the features commonly found in dependency injection implementations.

\n

In addition, Unity is extensible. You can write container extensions that change the behavior of the container, or add new capabilities. For example, the interception feature provided by Unity, which you can use to add policies to objects, is implemented as a container extension.

\n

2 Terms and Definitions

\n

2.1 Injection

\n

2.2 Dependency

\n

2.3 Contract

\n
    \n
  • Type
  • \n
  • Name
  • \n
\n

2.4 Metadata

\n

2.5 Lifetime

\n

3 Workflow

\n

Setup

\n

Before container could be used it should be prepared for operation.

\n

Creating Container

\n
Root
\n
Scopes
\n

Type Contracts

\n
Implicit
\n
Mapping
\n
Explicit
\n
    \n
  • Instance
  • \n
  • Factory
  • \n
  • Type
  • \n
\n

Provide Services

\n

Locate Contract

\n
Existing
\n
Hierarchical
\n
None
\n
Create Locally
\n
With the registration
\n
At the root
\n

Execute contract

\n
From lifetime manager
\n
From pipeline
\n

Manage created objects

\n

Teardown

\n

Dispose child scopes

\n

Dispose managed objects

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/specification.md","depot_name":".","document_id":"af1bdcaf-14d5-7e77-0ec5-01d6d1c40baf","document_version_independent_id":"67bda16f-dd4a-fce2-8c4b-7bf7ce6f0edc","gitcommit":"https://github.com/unitycontainer/documentation/blob/fcf3dc0a8e1438e5b0d980be1f7a8ea83ed2efdc/specs/specification.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/specification.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/specification.md","rawTitle":"

Unity Container Specification

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Container Specification","uid":"Specification.Unity","updated_at":"2019-03-06 11:21 PM","wordCount":149},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/specs/summary/index.html b/_site/specs/summary/index.html deleted file mode 100644 index f6c4231..0000000 --- a/_site/specs/summary/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n
    \n
  1. Introduction
  2. \n
  3. Terms and Definitions\n
      \n
    1. Injection
    2. \n
    3. Dependency
    4. \n
    5. Contract\n
        \n
      • Type
      • \n
      • Name
      • \n
      \n
    6. \n
    7. Metadata
    8. \n
    9. Lifetime
    10. \n
    \n
  4. \n
  5. Workflow\n
      \n
    1. Setup\n
        \n
      1. Creating Container\n
          \n
        1. Root
        2. \n
        3. Scopes
        4. \n
        \n
      2. \n
      3. Type Contracts\n
          \n
        1. Implicit
        2. \n
        3. Mapping
        4. \n
        5. Explicit\n
            \n
          • Instance
          • \n
          • Factory
          • \n
          • Type
          • \n
          \n
        6. \n
        \n
      4. \n
      \n
    2. \n
    3. Provide Services\n
        \n
      1. Locate Contract\n
          \n
        1. Existing
        2. \n
        3. Hierarchical
        4. \n
        5. None\n
            \n
          1. Create Locally
          2. \n
          3. With the registration
          4. \n
          5. At the root
          6. \n
          \n
        6. \n
        \n
      2. \n
      3. Execute contract\n
          \n
        1. From lifetime manager
        2. \n
        3. From pipeline
        4. \n
        \n
      4. \n
      \n
    4. \n
    5. Manage created objects
    6. \n
    \n
  6. \n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/6/2019","updated_at_date_time":"2019-03-06T23:21:05Z"},"_path":"specs/summary/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/summary/","conceptual":"\n
    \n
  1. Introduction
  2. \n
  3. Terms and Definitions\n
      \n
    1. Injection
    2. \n
    3. Dependency
    4. \n
    5. Contract\n
        \n
      • Type
      • \n
      • Name
      • \n
      \n
    6. \n
    7. Metadata
    8. \n
    9. Lifetime
    10. \n
    \n
  4. \n
  5. Workflow\n
      \n
    1. Setup\n
        \n
      1. Creating Container\n
          \n
        1. Root
        2. \n
        3. Scopes
        4. \n
        \n
      2. \n
      3. Type Contracts\n
          \n
        1. Implicit
        2. \n
        3. Mapping
        4. \n
        5. Explicit\n
            \n
          • Instance
          • \n
          • Factory
          • \n
          • Type
          • \n
          \n
        6. \n
        \n
      4. \n
      \n
    2. \n
    3. Provide Services\n
        \n
      1. Locate Contract\n
          \n
        1. Existing
        2. \n
        3. Hierarchical
        4. \n
        5. None\n
            \n
          1. Create Locally
          2. \n
          3. With the registration
          4. \n
          5. At the root
          6. \n
          \n
        6. \n
        \n
      2. \n
      3. Execute contract\n
          \n
        1. From lifetime manager
        2. \n
        3. From pipeline
        4. \n
        \n
      4. \n
      \n
    4. \n
    5. Manage created objects
    6. \n
    \n
  6. \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/summary.md","depot_name":".","document_id":"ebc52faa-cf9e-bb28-e329-137befaf18c0","document_version_independent_id":"9271befb-21eb-ce4a-1048-1301c975b0d0","gitcommit":"https://github.com/unitycontainer/documentation/blob/fcf3dc0a8e1438e5b0d980be1f7a8ea83ed2efdc/specs/summary.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/summary.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/summary.md","rawTitle":"

Summary

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Summary","uid":"Specification.Summary","updated_at":"2019-03-06 11:21 PM","wordCount":50},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/specs/toc.json b/_site/specs/toc.json deleted file mode 100644 index f679593..0000000 --- a/_site/specs/toc.json +++ /dev/null @@ -1 +0,0 @@ -{"metadata":{"_appTitle":"Unity Container","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appFaviconPath":"images/favicon.png"},"items":[{"name":"Introduction","href":"specification/","uid":"Specification.Unity"},{"name":"Method","href":"method/","uid":"Specification.Method"},{"name":"Field","href":"field/","uid":"Specification.Field"},{"name":"Property","href":"property/","uid":"Specification.Property"},{"name":"Specification","href":"specification/","uid":"Specification.Unity"}]} \ No newline at end of file diff --git a/_site/specs/workflow/index.html b/_site/specs/workflow/index.html deleted file mode 100644 index 581e2b6..0000000 --- a/_site/specs/workflow/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Before container could be used it should be prepared for operation.

\n

Creating Container

\n
Root
\n
Scopes
\n

Type Contracts

\n
Implicit
\n
Mapping
\n
Explicit
\n
    \n
  • Instance
  • \n
  • Factory
  • \n
  • Type
  • \n
\n

Provide Services

\n

Locate Contract

\n
Existing
\n
Hierarchical
\n
None
\n
Create Locally
\n
With the registration
\n
At the root
\n

Execute contract

\n
From lifetime manager
\n
From pipeline
\n

Manage created objects

\n

Teardown

\n

Dispose child scopes

\n

Dispose managed objects

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/6/2019","updated_at_date_time":"2019-03-06T03:02:40Z"},"_path":"specs/workflow/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/specs/workflow/","conceptual":"\n

Before container could be used it should be prepared for operation.

\n

Creating Container

\n
Root
\n
Scopes
\n

Type Contracts

\n
Implicit
\n
Mapping
\n
Explicit
\n
    \n
  • Instance
  • \n
  • Factory
  • \n
  • Type
  • \n
\n

Provide Services

\n

Locate Contract

\n
Existing
\n
Hierarchical
\n
None
\n
Create Locally
\n
With the registration
\n
At the root
\n

Execute contract

\n
From lifetime manager
\n
From pipeline
\n

Manage created objects

\n

Teardown

\n

Dispose child scopes

\n

Dispose managed objects

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/workflow.md","depot_name":".","document_id":"92912b1a-fce7-7872-3d33-3afd56ebc1eb","document_version_independent_id":"a7106ca5-04de-eed2-29a3-e2b877b19db9","gitcommit":"https://github.com/unitycontainer/documentation/blob/ddaee7af1f7438438cc8e0af39906104a6afe004/specs/workflow.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/specs/workflow.md","original_content_git_url_template":"{repo}/blob/{branch}/specs/workflow.md","rawTitle":"

Setup

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Workflow","uid":"Specification.Workflow","updated_at":"2019-03-06 03:02 AM","wordCount":55},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/toc.json b/_site/toc.json deleted file mode 100644 index a3b1dde..0000000 --- a/_site/toc.json +++ /dev/null @@ -1 +0,0 @@ -{"metadata":{"_appTitle":"Unity Container","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appFaviconPath":"images/favicon.png"},"items":[{"name":"Overview","href":"articles/introduction/"},{"name":"Tutorials","href":"tutorials/hierarchies/"},{"name":"Api Documentation"}]} \ No newline at end of file diff --git a/_site/tutorials/annotation/annotation/index.html b/_site/tutorials/annotation/annotation/index.html deleted file mode 100644 index dbe7187..0000000 --- a/_site/tutorials/annotation/annotation/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

One of the most useful and powerful techniques when using Unity is to take advantage of dependency injection for the parameters of class constructors and methods, and for the values of fields and properties. This approach allows you to resolve and populate the entire hierarchy of objects used in your application based on type registrations and mappings defined in the container, with the subsequent advantages this offers.

\n

You can specify constructor, field, property, and method call injection information in configuration or by adding registrations to the container at run time. You can also apply attributes to members of your classes to indicate injection targets. When you resolve these classes through the container, Unity will generate instances of the dependent objects and wire up the injection targets with these instances.

\n

Using Injection Attributes

\n

Normally, Unity performs selection of the constructor automatically by choosing the most complex constructor it can satisfy with dependencies and populating these parameters with resolved values when it constructs the object. In some cases, for various reasons, the constructor could not be selected successfully and container may throw an exception.

\n

Constructor Annotation

\n

To disambiguate selection or to override automatic behavior you could specify which constructor Unity should use to construct the object by marking it with InjectionConstructor attribute.

\n

Member Annotation

\n

Property, field, and method call injections do not occur automatically unless registered with appropriate injection members at run time. To enable automatic member injection for types you can add attributes to the members of your classes to force injection of dependent objects when the target class is resolved.

\n

Required and Optional

\n

Fields, Properties, and Parameters could be annotated with either Dependency or OptionalDependency attributes to indicate that these require values to be injected. For annotating methods you wish to be called during initialization you could use InjectionMethod

\n

For more information, see:

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/16/2019","updated_at_date_time":"2019-03-16T20:42:53Z"},"_path":"tutorials/annotation/annotation/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/annotation/annotation/","conceptual":"\n

One of the most useful and powerful techniques when using Unity is to take advantage of dependency injection for the parameters of class constructors and methods, and for the values of fields and properties. This approach allows you to resolve and populate the entire hierarchy of objects used in your application based on type registrations and mappings defined in the container, with the subsequent advantages this offers.

\n

You can specify constructor, field, property, and method call injection information in configuration or by adding registrations to the container at run time. You can also apply attributes to members of your classes to indicate injection targets. When you resolve these classes through the container, Unity will generate instances of the dependent objects and wire up the injection targets with these instances.

\n

Using Injection Attributes

\n

Normally, Unity performs selection of the constructor automatically by choosing the most complex constructor it can satisfy with dependencies and populating these parameters with resolved values when it constructs the object. In some cases, for various reasons, the constructor could not be selected successfully and container may throw an exception.

\n

Constructor Annotation

\n

To disambiguate selection or to override automatic behavior you could specify which constructor Unity should use to construct the object by marking it with InjectionConstructor attribute.

\n

Member Annotation

\n

Property, field, and method call injections do not occur automatically unless registered with appropriate injection members at run time. To enable automatic member injection for types you can add attributes to the members of your classes to force injection of dependent objects when the target class is resolved.

\n

Required and Optional

\n

Fields, Properties, and Parameters could be annotated with either Dependency or OptionalDependency attributes to indicate that these require values to be injected. For annotating methods you wish to be called during initialization you could use InjectionMethod

\n

For more information, see:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/annotation.md","depot_name":".","document_id":"29642b10-fdb8-4b72-8854-aa787580a1f2","document_version_independent_id":"49daebef-832d-2c5b-99f9-0b1b2cc00ffb","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/tutorials/Annotation/annotation.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/annotation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/annotation.md","rawTitle":"

Attributed Injection Model

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Attributed Injection Model","uid":"Tutorial.Annotation","updated_at":"2019-03-16 08:42 PM","wordCount":327},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/annotation/constructor/index.html b/_site/tutorials/annotation/constructor/index.html deleted file mode 100644 index 716eb2f..0000000 --- a/_site/tutorials/annotation/constructor/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

To select constructors you create through the Unity container, you can use the following three techniques:

\n\n

Annotated Constructor Injection

\n

Constructor Injection with Attribute Annotation allows you to apply attributes to the class' constructor designating it for dependency injection. When creating the class, Unity will always (unless explicitly overwritten in Registration) use that constructor. You only need to use this technique when there is more than one constructor in the target type.

\n

Annotating a Constructor

\n

When a target class contains more than one constructor and the automatic algorithm does not provide desired selection, you may use the InjectionConstructor attribute to specify the constructor you wish to use for injection.

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this example type Service contains four public constructors. Three of these constructors have one parameter each. A Type like this creates an ambiguity that Unity could not resolve by itself.

\n
\n
WARNING
\n

During resolution, the container will pick the first constructor it could satisfy with dependencies and will use it. In the example above, it could be any of the three constructors with one parameter.

\n
\n

The container is not trying to validate all available contractors during normal execution.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructors.

\n
\n

Normally, Unity would select the third constructor with three parameters, but by annotating the second constructor with the attribute you force Unity to use it during resolution.

\n

Multiple Constructor Annotations

\n

Annotating multiple constructors with injection parameters is not recommended. Unity is not guaranteed to process constructors in certain order. If multiple constructors are annotated, behavior might change from version to version.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructor annotations.

\n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/annotation/constructor/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/annotation/constructor/","conceptual":"\n

To select constructors you create through the Unity container, you can use the following three techniques:

\n\n

Annotated Constructor Injection

\n

Constructor Injection with Attribute Annotation allows you to apply attributes to the class' constructor designating it for dependency injection. When creating the class, Unity will always (unless explicitly overwritten in Registration) use that constructor. You only need to use this technique when there is more than one constructor in the target type.

\n

Annotating a Constructor

\n

When a target class contains more than one constructor and the automatic algorithm does not provide desired selection, you may use the InjectionConstructor attribute to specify the constructor you wish to use for injection.

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this example type Service contains four public constructors. Three of these constructors have one parameter each. A Type like this creates an ambiguity that Unity could not resolve by itself.

\n
\n
WARNING
\n

During resolution, the container will pick the first constructor it could satisfy with dependencies and will use it. In the example above, it could be any of the three constructors with one parameter.

\n
\n

The container is not trying to validate all available contractors during normal execution.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructors.

\n
\n

Normally, Unity would select the third constructor with three parameters, but by annotating the second constructor with the attribute you force Unity to use it during resolution.

\n

Multiple Constructor Annotations

\n

Annotating multiple constructors with injection parameters is not recommended. Unity is not guaranteed to process constructors in certain order. If multiple constructors are annotated, behavior might change from version to version.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructor annotations.

\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/constructor.md","depot_name":".","document_id":"78a4a31f-8f9d-b1b8-c4d8-5ee0709c8dc8","document_version_independent_id":"f6ecaf01-9c4e-2b5e-7627-55221cde4f1c","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Annotation/constructor.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/constructor.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating Type for Constructor Injection","uid":"Tutorial.Annotation.Constructor","updated_at":"2019-04-05 01:56 AM","wordCount":385},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/annotation/field/index.html b/_site/tutorials/annotation/field/index.html deleted file mode 100644 index eb5b12b..0000000 --- a/_site/tutorials/annotation/field/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

By default Unity does not inject any fields of the classes it creates.

\n

To enable field injection you need to configure Unity during registration of annotate appropriate fields with dependency attributes. Unity supports two types of field injection:

\n
    \n
  • Required injection - Unity either satisfies this dependency or throws an exception
  • \n
  • Optional injection - Unity either satisfies this dependency or returns null
  • \n
\n

Field injection

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/6/2019","updated_at_date_time":"2019-03-06T03:02:40Z"},"_path":"tutorials/annotation/field/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/annotation/field/","conceptual":"\n

By default Unity does not inject any fields of the classes it creates.

\n

To enable field injection you need to configure Unity during registration of annotate appropriate fields with dependency attributes. Unity supports two types of field injection:

\n
    \n
  • Required injection - Unity either satisfies this dependency or throws an exception
  • \n
  • Optional injection - Unity either satisfies this dependency or returns null
  • \n
\n

Field injection

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/field.md","depot_name":".","document_id":"3e5f244d-d6a9-5148-d40d-89c6eb8569f6","document_version_independent_id":"fa6bed51-64f2-74c1-6c10-b4352c0c8e58","gitcommit":"https://github.com/unitycontainer/documentation/blob/ddaee7af1f7438438cc8e0af39906104a6afe004/tutorials/Annotation/field.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/field.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/field.md","rawTitle":"

Annotating types for Field injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating types for Field injection","uid":"Tutorial.Annotation.Field","updated_at":"2019-03-06 03:02 AM","wordCount":63},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/annotation/method/index.html b/_site/tutorials/annotation/method/index.html deleted file mode 100644 index a943eda..0000000 --- a/_site/tutorials/annotation/method/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Method invocation is an optional step you can add to the created object's initialization. Any accessible method could be invoked, provided Unity can satisfy all the parameters with appropriate values.

\n

Method Invocation

\n

To enable method invocation during object initialization you could apply InjectionMethod attribute to the method you want to be executed.

\n
public class Service\n{\n    ...\n    private void PreInitialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void Initialize(...)\n    {\n        ...\n    }\n\n    public void PostInitialize(...)\n    {\n        ...\n    }\n}\n
\n

In the example above, attribute InjectionMethod is applied to method Initialize(...) and the method will be executed immediately after the object is created.

\n

Multiple Method Invocation

\n

Unity does not place any restrictions on how many methods of the class will be invoked during the initialization. You could mark any and all methods with the attribute and Unity will execute them all:

\n
public class Service\n{\n    ...\n\n    [InjectionMethod]\n    public void PreInitialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void Initialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void PostInitialize(...)\n    {\n        ...\n    }\n}\n
\n

Restrictions

\n

Static methods cannot be invoked

\n

Unity does not support invocation of static methods. Static methods annotated with InjectionMethod attribute will be ignored. If Unity Diagnostic is enabled, the container will throw an exception when it encounters such an annotation.

\n

Methods with ref or out parameters cannot be invoked

\n

Methods containing ref or out parameters cannot be invoked during initialization. The container will throw an exception if encountered these.

\n
public class Service\n{\n    [InjectionMethod]  // Error\n    public void Method1(ref object refObject)\n    {\n        ...\n    }\n    ...\n\n    [InjectionMethod]  // Error\n    public void Method2(out object outObject)\n    {\n        ...\n    }\n}\n
\n

In the example above neither Method1(ref object refObject) nor Method2(out object outObject) should be annotated for invocation. Doing so will create an error condition.

\n

Invoking private and protected methods is not allowed

\n

Although it is technically possible to call private and protected methods of the class, Unity does not support this feature. This restriction is implemented to impose consistency with accessibility principles of C# language.

\n

Unity will ignore attributes on non-accessible methods.

\n
public class Service\n{\n    ...\n\n    [InjectionMethod]  // Error\n    protected void ProtectedMethod(...)\n    {\n        ...\n    }\n}\n
\n

In the example above method ProtectedMethod(...) will not be called.

\n

If Unity Diagnostic is enabled, the container will throw an exception when it encounters this condition.

\n

For more information see Unity Diagnostic.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/annotation/method/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/annotation/method/","conceptual":"\n

Method invocation is an optional step you can add to the created object's initialization. Any accessible method could be invoked, provided Unity can satisfy all the parameters with appropriate values.

\n

Method Invocation

\n

To enable method invocation during object initialization you could apply InjectionMethod attribute to the method you want to be executed.

\n
public class Service\n{\n    ...\n    private void PreInitialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void Initialize(...)\n    {\n        ...\n    }\n\n    public void PostInitialize(...)\n    {\n        ...\n    }\n}\n
\n

In the example above, attribute InjectionMethod is applied to method Initialize(...) and the method will be executed immediately after the object is created.

\n

Multiple Method Invocation

\n

Unity does not place any restrictions on how many methods of the class will be invoked during the initialization. You could mark any and all methods with the attribute and Unity will execute them all:

\n
public class Service\n{\n    ...\n\n    [InjectionMethod]\n    public void PreInitialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void Initialize(...)\n    {\n        ...\n    }\n\n    [InjectionMethod]\n    public void PostInitialize(...)\n    {\n        ...\n    }\n}\n
\n

Restrictions

\n

Static methods cannot be invoked

\n

Unity does not support invocation of static methods. Static methods annotated with InjectionMethod attribute will be ignored. If Unity Diagnostic is enabled, the container will throw an exception when it encounters such an annotation.

\n

Methods with ref or out parameters cannot be invoked

\n

Methods containing ref or out parameters cannot be invoked during initialization. The container will throw an exception if encountered these.

\n
public class Service\n{\n    [InjectionMethod]  // Error\n    public void Method1(ref object refObject)\n    {\n        ...\n    }\n    ...\n\n    [InjectionMethod]  // Error\n    public void Method2(out object outObject)\n    {\n        ...\n    }\n}\n
\n

In the example above neither Method1(ref object refObject) nor Method2(out object outObject) should be annotated for invocation. Doing so will create an error condition.

\n

Invoking private and protected methods is not allowed

\n

Although it is technically possible to call private and protected methods of the class, Unity does not support this feature. This restriction is implemented to impose consistency with accessibility principles of C# language.

\n

Unity will ignore attributes on non-accessible methods.

\n
public class Service\n{\n    ...\n\n    [InjectionMethod]  // Error\n    protected void ProtectedMethod(...)\n    {\n        ...\n    }\n}\n
\n

In the example above method ProtectedMethod(...) will not be called.

\n

If Unity Diagnostic is enabled, the container will throw an exception when it encounters this condition.

\n

For more information see Unity Diagnostic.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/method.md","depot_name":".","document_id":"5ae531df-dce4-5f36-9c71-e384a74e77dc","document_version_independent_id":"f8c80055-fe8e-50ca-9e17-07b04982b1ac","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Annotation/method.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/method.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/method.md","rawTitle":"

Annotating types for Method invocation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating types for Method invocation","uid":"Tutorial.Annotation.Method","updated_at":"2019-04-05 01:56 AM","wordCount":368},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/annotation/parameter/index.html b/_site/tutorials/annotation/parameter/index.html deleted file mode 100644 index 0c6c97a..0000000 --- a/_site/tutorials/annotation/parameter/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/4/2019","updated_at_date_time":"2019-03-04T04:07:59Z"},"_path":"tutorials/annotation/parameter/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/annotation/parameter/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/parameter.md","depot_name":".","document_id":"f85b065f-2cd0-8da7-c090-a2590a7b6682","document_version_independent_id":"5d0e49be-3a43-6aaf-47d6-fb8c7fed5bc9","gitcommit":"https://github.com/unitycontainer/documentation/blob/3ce1397a639bc01a45da7e6143e5be8bb2e67818/tutorials/Annotation/parameter.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/parameter.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/parameter.md","rawTitle":"

Annotating Constructors and Methods for Parameter Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Annotating Constructors and Methods for Parameter Injection","uid":"Tutorial.Annotation.Parameter","updated_at":"2019-03-04 04:07 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/annotation/property/index.html b/_site/tutorials/annotation/property/index.html deleted file mode 100644 index de5eb9f..0000000 --- a/_site/tutorials/annotation/property/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/16/2019","updated_at_date_time":"2019-03-16T20:42:53Z"},"_path":"tutorials/annotation/property/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/annotation/property/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/property.md","depot_name":".","document_id":"6814e60e-6ade-f695-88c6-035d214a78dd","document_version_independent_id":"fbdced5a-ca01-4bd7-b80b-69048ade93ef","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/tutorials/Annotation/property.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Annotation/property.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Annotation/property.md","rawTitle":"

Annotating Objects for Property Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Injection Annotation","uid":"Tutorial.Annotation.Property","updated_at":"2019-03-16 08:42 PM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/buildup/buildup/index.html b/_site/tutorials/composition/buildup/buildup/index.html deleted file mode 100644 index bd286ce..0000000 --- a/_site/tutorials/composition/buildup/buildup/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/buildup/buildup/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/buildup/buildup/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/BuildUp/buildup.md","depot_name":".","document_id":"ac5e69d2-90ac-2ebc-2061-3bd40761c5ed","document_version_independent_id":"8b0dbe0c-bfb5-b68b-f782-5702f0b90f85","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/BuildUp/buildup.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/BuildUp/buildup.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/BuildUp/buildup.md","rawTitle":"

Build Up

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Object Build Up","uid":"Tutorial.BuildUp","updated_at":"2019-04-30 12:00 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/collections/index.html b/_site/tutorials/composition/collections/index.html deleted file mode 100644 index 39c84e3..0000000 --- a/_site/tutorials/composition/collections/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Unity supports creating multiple registration of the same type by adding a name to the registration. It is useful if you want to register different services of the same type. For example, if you have multiple printers and you want them all to be available to consumers you would register them like this:

\n
container.RegisterInstance<IPrinter>(printer); // default printer\ncontainer.RegisterInstance<IPrinter>(printer1,   "Office Printer");\ncontainer.RegisterInstance<IPrinter>(printer2,   "Printer at the deli on the street corner");\ncontainer.RegisterType<IPrinter, NeighborPrinter>("Office printer near me");\n
\n

When you want to obtain a list of all the registered objects of a specific type, IPrinter in this case, you can use the array T[] or IEnumerable<T> of that type. The difference between array and enumerable resolution is that array only returns named (nondefault name) registrations where enumerable always returns all, named and unnamed registrations.

\n

Resolving array T[]

\n

When resolving array of a type, Unity will return an array containing only types registered with nondefault (other than null) names. In example above call to Resolve will return array of only three elements:

\n
IPrinter[] printers = container.Resolve<IPrinter[]>();\nAssert(3 == printers.Length)\n
\n

Instance printer will not be returned because it was registered with no name.

\n

Resolving IEnumerable<T>

\n

IEnumerable<T> returns an enumerable containing all registrations of type T, including default (with name null) registrations. In example above it will return all four registrations:

\n
IPrinter[] printers = container.Resolve<IEnumerable<IPrinter>>();\nAssert(4 == printers.Count())\n
\n

Resolving List<T> of types

\n

Unity does not have any special provisions to support List<T> but because List type's longest exposed constructor is

\n
public List(IEnumerable<T> items)\n
\n

Unity is able to resolve List<T>. Consider this example:

\n
var printers = container.Resolve<List<IPrinter>>();\nAssert(4 == printers.Count)\n
\n

Unity creates type List<IPrinter> and during initialization selects longest constructor it can satisfy with dependencies (List(IEnumerable<T> items)). It crates the enumeration and passes it to List constructor. Resulting instance is a list of all registrations of that type.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/collections/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/composition/collections/","conceptual":"\n

Unity supports creating multiple registration of the same type by adding a name to the registration. It is useful if you want to register different services of the same type. For example, if you have multiple printers and you want them all to be available to consumers you would register them like this:

\n
container.RegisterInstance<IPrinter>(printer); // default printer\ncontainer.RegisterInstance<IPrinter>(printer1,   "Office Printer");\ncontainer.RegisterInstance<IPrinter>(printer2,   "Printer at the deli on the street corner");\ncontainer.RegisterType<IPrinter, NeighborPrinter>("Office printer near me");\n
\n

When you want to obtain a list of all the registered objects of a specific type, IPrinter in this case, you can use the array T[] or IEnumerable<T> of that type. The difference between array and enumerable resolution is that array only returns named (nondefault name) registrations where enumerable always returns all, named and unnamed registrations.

\n

Resolving array T[]

\n

When resolving array of a type, Unity will return an array containing only types registered with nondefault (other than null) names. In example above call to Resolve will return array of only three elements:

\n
IPrinter[] printers = container.Resolve<IPrinter[]>();\nAssert(3 == printers.Length)\n
\n

Instance printer will not be returned because it was registered with no name.

\n

Resolving IEnumerable<T>

\n

IEnumerable<T> returns an enumerable containing all registrations of type T, including default (with name null) registrations. In example above it will return all four registrations:

\n
IPrinter[] printers = container.Resolve<IEnumerable<IPrinter>>();\nAssert(4 == printers.Count())\n
\n

Resolving List<T> of types

\n

Unity does not have any special provisions to support List<T> but because List type's longest exposed constructor is

\n
public List(IEnumerable<T> items)\n
\n

Unity is able to resolve List<T>. Consider this example:

\n
var printers = container.Resolve<List<IPrinter>>();\nAssert(4 == printers.Count)\n
\n

Unity creates type List<IPrinter> and during initialization selects longest constructor it can satisfy with dependencies (List(IEnumerable<T> items)). It crates the enumeration and passes it to List constructor. Resulting instance is a list of all registrations of that type.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/collections.md","depot_name":".","document_id":"0884b99e-0a93-edc3-f12f-ad8b3a65a047","document_version_independent_id":"e03b645c-3edf-6832-3486-73089b8efedc","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/collections.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/collections.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/collections.md","rawTitle":"

Resolving collections of Objects of a Particular Type

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Collections","uid":"Tutorial.Collections","updated_at":"2019-04-30 12:00 AM","wordCount":300},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/composition/index.html b/_site/tutorials/composition/composition/index.html deleted file mode 100644 index 65cb02e..0000000 --- a/_site/tutorials/composition/composition/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Composition is a general term describing creation and initialization of an object. During composition an object is created and initialized with all of its dependencies and initialization methods.

\n

Since each dependency might have its own dependencies entire dependency graph has to be created and each node has to be initialized in order of priority.

\n

The Unity container supports two types of composition:

\n

Resolution

\n

Resolution is a process where an object is built from scratch. In other words, the container is allocating the memory for an object, calls a constructor with all of its dependencies and performs all necessary initialization required by the type. For more information see Object Resolution

\n

Building Up

\n

Building up is a process where the container does not create an object but initializes already created object. This is useful when an object is part of an infrastructure and author does not have access or control of how these are created.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"7/31/2019","updated_at_date_time":"2019-07-31T11:26:54Z"},"_path":"tutorials/composition/composition/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/composition/composition/","conceptual":"\n

Composition is a general term describing creation and initialization of an object. During composition an object is created and initialized with all of its dependencies and initialization methods.

\n

Since each dependency might have its own dependencies entire dependency graph has to be created and each node has to be initialized in order of priority.

\n

The Unity container supports two types of composition:

\n

Resolution

\n

Resolution is a process where an object is built from scratch. In other words, the container is allocating the memory for an object, calls a constructor with all of its dependencies and performs all necessary initialization required by the type. For more information see Object Resolution

\n

Building Up

\n

Building up is a process where the container does not create an object but initializes already created object. This is useful when an object is part of an infrastructure and author does not have access or control of how these are created.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/composition.md","depot_name":".","document_id":"1457e229-39bc-a777-76a7-92e4438da74e","document_version_independent_id":"31268c2a-a9a6-f73d-3573-58f93512e7b2","gitcommit":"https://github.com/unitycontainer/documentation/blob/2b566771060defc33c61a481b10ffc9c8786eba9/tutorials/Composition/composition.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/composition.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/composition.md","rawTitle":"

Composition

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Composition","uid":"Tutorial.Composition","updated_at":"2019-07-31 11:26 AM","wordCount":153},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/generics/deferred/index.html b/_site/tutorials/composition/generics/deferred/index.html deleted file mode 100644 index 6c4ec53..0000000 --- a/_site/tutorials/composition/generics/deferred/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Unity provides a technique to facilitate holding a reference to an object you need, but do not want to construct right away. You wish to defer resolution of the object. Instead of creating a factory for the type and injecting the factory into your class, then using it to create the type you want you can use the .NET standard type Func (C#) or Func(Of T) (Visual Basic) with the Resolve method. This returns a delegate that, when invoked, calls into the container and returns an instance of the specified type (in this case, T).

\n

You can even create a delegate in this way without creating a registration or mapping for the specified type in the container if you wish. Because the resolve action only takes place when you invoke the delegate, subsequent registrations added to the container are available when the target object is resolved. This means that you can manipulate the registrations and mappings in the container at any point before you resolve the target object (although you can obviously register the type before you create the delegate if you prefer).

\n

For example, you can create a delegate for a component named MyClass, and then register a mapping for it and perform deferred resolution when required using the following code.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create a delegate for the IMyClass interface type\nvar resolver = myContainer.Resolve<Func<IMyClass>>();\n\n// ... other code here...\n\n// Register a mapping for the IMyClass interface to the MyClass type\nmyContainer.RegisterType<IMyClass, MyClass>();\n\n// Resolve the mapped target object\nIMyClass myClassInstance = resolver();\n
\n

You can use this approach when you resolve the type using the Resolve method, or you can specify the delegate when you configure constructor, property setter, or method call injection. You can also use named (non-default) registrations by including the registration name in the call to the Resolve method and the RegisterType method, just as you would when using these methods for non-deferred resolution.

\n

In addition, you can use this feature to perform deferred resolution of multiple named registrations, as an alternative to using the ResolveAll method. For example, if you have multiple named registrations for the IMyClass interface to suitable concrete types, you can obtain a collection of the resolved types. The following code illustrates this.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create an IEnumerable resolver for the IMyClass interface type\nvar resolver = myContainer.Resolve<Func<IEnumerable<IMyClass>>>();\n\n// ... other code here...\n\n// Register mappings for the IMyClass interface to appropriate concrete types\nmyContainer.RegisterType<IMyClass, FirstClass>("First");\nmyContainer.RegisterType<IMyClass, SecondClass>("Second");\nmyContainer.RegisterType<IMyClass, ThidClass>("Third");\n\n// Resolve a collection of the mapped target objects\nIEnumerable<IMyClass> myClassInstances = resolver();\n
\n

You can also use the deferred resolver to resolve instance registrations. For example, the following code shows how you can resolve an IEnumerable collection of string values.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create an IEnumerable resolver for string instance registrations\nvar resolver = myContainer.Resolve<Func<IEnumerable<string>>>();\n\n// ... other code here...\n\n// Register mappings for the IMyClass interface to appropriate concrete types\nmyContainer.RegisterInstance("one", "FirstString");\nmyContainer.RegisterInstance("two", "SecondString");\nmyContainer.RegisterInstance("three", "ThirdString");\n\n// Resolve a collection of the strings\nIEnumerable<string> myStringInstances = resolver();\n
\n
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/generics/deferred/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/generics/deferred/","conceptual":"\n

Unity provides a technique to facilitate holding a reference to an object you need, but do not want to construct right away. You wish to defer resolution of the object. Instead of creating a factory for the type and injecting the factory into your class, then using it to create the type you want you can use the .NET standard type Func (C#) or Func(Of T) (Visual Basic) with the Resolve method. This returns a delegate that, when invoked, calls into the container and returns an instance of the specified type (in this case, T).

\n

You can even create a delegate in this way without creating a registration or mapping for the specified type in the container if you wish. Because the resolve action only takes place when you invoke the delegate, subsequent registrations added to the container are available when the target object is resolved. This means that you can manipulate the registrations and mappings in the container at any point before you resolve the target object (although you can obviously register the type before you create the delegate if you prefer).

\n

For example, you can create a delegate for a component named MyClass, and then register a mapping for it and perform deferred resolution when required using the following code.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create a delegate for the IMyClass interface type\nvar resolver = myContainer.Resolve<Func<IMyClass>>();\n\n// ... other code here...\n\n// Register a mapping for the IMyClass interface to the MyClass type\nmyContainer.RegisterType<IMyClass, MyClass>();\n\n// Resolve the mapped target object\nIMyClass myClassInstance = resolver();\n
\n

You can use this approach when you resolve the type using the Resolve method, or you can specify the delegate when you configure constructor, property setter, or method call injection. You can also use named (non-default) registrations by including the registration name in the call to the Resolve method and the RegisterType method, just as you would when using these methods for non-deferred resolution.

\n

In addition, you can use this feature to perform deferred resolution of multiple named registrations, as an alternative to using the ResolveAll method. For example, if you have multiple named registrations for the IMyClass interface to suitable concrete types, you can obtain a collection of the resolved types. The following code illustrates this.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create an IEnumerable resolver for the IMyClass interface type\nvar resolver = myContainer.Resolve<Func<IEnumerable<IMyClass>>>();\n\n// ... other code here...\n\n// Register mappings for the IMyClass interface to appropriate concrete types\nmyContainer.RegisterType<IMyClass, FirstClass>("First");\nmyContainer.RegisterType<IMyClass, SecondClass>("Second");\nmyContainer.RegisterType<IMyClass, ThidClass>("Third");\n\n// Resolve a collection of the mapped target objects\nIEnumerable<IMyClass> myClassInstances = resolver();\n
\n

You can also use the deferred resolver to resolve instance registrations. For example, the following code shows how you can resolve an IEnumerable collection of string values.

\n
// Create a Unity container\nIUnityContainer myContainer = new UnityContainer();\n\n// Create an IEnumerable resolver for string instance registrations\nvar resolver = myContainer.Resolve<Func<IEnumerable<string>>>();\n\n// ... other code here...\n\n// Register mappings for the IMyClass interface to appropriate concrete types\nmyContainer.RegisterInstance("one", "FirstString");\nmyContainer.RegisterInstance("two", "SecondString");\nmyContainer.RegisterInstance("three", "ThirdString");\n\n// Resolve a collection of the strings\nIEnumerable<string> myStringInstances = resolver();\n
\n
","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/deferred.md","depot_name":".","document_id":"a1f92544-a7e3-3af7-c90f-d602719ebcfa","document_version_independent_id":"ec0143ad-09ff-c2bb-f179-d04c151dfa62","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Generics/deferred.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/deferred.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/deferred.md","rawTitle":"

Deferring the Resolution of Objects

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Deferred Resolution","uid":"Tutorial.Deferred","updated_at":"2019-04-30 12:00 AM","wordCount":520},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/generics/generics/index.html b/_site/tutorials/composition/generics/generics/index.html deleted file mode 100644 index 8e5df8f..0000000 --- a/_site/tutorials/composition/generics/generics/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

You resolve generic types in much the same way as you resolve non-generic types. The primary difference is with unbound types. The specification of the type arguments depend on the definition of the mapped type or the type you are resolving:

\n
    \n
  • If the mapped type or the type you are resolving is a bound type, you can only resolve an instance of the type using the defined type arguments. For example, if the mapped type has type arguments of type string and DateTime, you must specify these in the call to the Resolve method.

    \n
  • \n
  • If the mapped type or the type you are resolving is an unbound type, you can resolve an instance of the type using any types for the type arguments. The target class must be able to process arguments of the type you specify. For example, if one of the type arguments you specify is the type Boolean, the class must be able to handle Boolean values for that argument and not attempt to parse the value into a DateTime instance.

    \n
  • \n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/generics/generics/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/generics/generics/","conceptual":"\n

You resolve generic types in much the same way as you resolve non-generic types. The primary difference is with unbound types. The specification of the type arguments depend on the definition of the mapped type or the type you are resolving:

\n
    \n
  • If the mapped type or the type you are resolving is a bound type, you can only resolve an instance of the type using the defined type arguments. For example, if the mapped type has type arguments of type string and DateTime, you must specify these in the call to the Resolve method.

    \n
  • \n
  • If the mapped type or the type you are resolving is an unbound type, you can resolve an instance of the type using any types for the type arguments. The target class must be able to process arguments of the type you specify. For example, if one of the type arguments you specify is the type Boolean, the class must be able to handle Boolean values for that argument and not attempt to parse the value into a DateTime instance.

    \n
  • \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/generics.md","depot_name":".","document_id":"a92a9f46-f50f-2f68-4bb8-5e7652680910","document_version_independent_id":"4e0f56a0-6763-4bbf-372b-b019b3d8caa4","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Generics/generics.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/generics.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/generics.md","rawTitle":"

Generic Types

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Generics","uid":"Tutorial.Generics","updated_at":"2019-04-30 12:00 AM","wordCount":174},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/generics/lazy/index.html b/_site/tutorials/composition/generics/lazy/index.html deleted file mode 100644 index 2d0e44b..0000000 --- a/_site/tutorials/composition/generics/lazy/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T01:18:55Z"},"_path":"tutorials/composition/generics/lazy/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/generics/lazy/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/lazy.md","depot_name":".","document_id":"9b5a7104-d6da-4330-733e-273254cf63cf","document_version_independent_id":"4188df6c-93dd-f51a-63be-280e09e8beda","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Generics/lazy.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/lazy.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/lazy.md","rawTitle":"

Lazy

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Lazy","uid":"Tutorial.Lazy","updated_at":"2019-04-30 01:18 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/generics/metadata/index.html b/_site/tutorials/composition/generics/metadata/index.html deleted file mode 100644 index 7ca3f25..0000000 --- a/_site/tutorials/composition/generics/metadata/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/generics/metadata/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/generics/metadata/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/metadata.md","depot_name":".","document_id":"ac43e2ab-6d9a-2ed0-8c89-80b21278762e","document_version_independent_id":"f5d1d529-9ad8-fb0c-2f65-e9f4c3c42474","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Generics/metadata.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Generics/metadata.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Generics/metadata.md","rawTitle":"

Generic Metadata

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Metadata","uid":"Tutorial.Generics.Metadata","updated_at":"2019-04-30 12:00 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/mapping/generic/index.html b/_site/tutorials/composition/mapping/generic/index.html deleted file mode 100644 index 95fbf44..0000000 --- a/_site/tutorials/composition/mapping/generic/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T01:18:55Z"},"_path":"tutorials/composition/mapping/generic/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/mapping/generic/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/generic.md","depot_name":".","document_id":"418b01e6-2886-a05c-94d3-2695d8234782","document_version_independent_id":"c730bf6f-c479-0b44-0b51-e7754d3759c9","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Mapping/generic.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/generic.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Mapping/generic.md","rawTitle":"

Generic Type Mapping

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Generic Type Mapping","uid":"Tutorial.Mapping.Generic","updated_at":"2019-04-30 01:18 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/mapping/implementation/index.html b/_site/tutorials/composition/mapping/implementation/index.html deleted file mode 100644 index 2003e16..0000000 --- a/_site/tutorials/composition/mapping/implementation/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Service to Implementation mapping is done during the service registration.

\n

The Service Itself

\n

The simplest type of registration is when service is registered by its own type. For Type and Instance registration you could do so by simply registering the type or the instance:

\n
container.RegisterType<Foo>();\ncontainer.RegisterInstance(new Foo());\n
\n

A factory has to specify type it is registered under:

\n
container.RegisterFactory<Foo>((c, t, n) => new Foo());\n
\n

Mapping Contract to Implementation

\n

When you map Registered type to implementation type you specify an service type first and implementation type second:

\n
container.RegisterType<IFoo, Foo>();\ncontainer.RegisterInstance<IFoo>(new Foo());\n
\n

In case of factory registration the container does not care how it is implemented by the factory, all it cares is how it is registered:

\n
container.RegisterFactory<IFoo>((c, t, n) => new Foo());\n
\n

Building and Mapping to Implementation

\n

Mapping allows redirection to existing registrations and services as well as building new instances of implementation types.

\n

Mapping to Existing Service

\n

The Unity container supports a scenario where a mapping does not crate type itself but rather references existing service registered with the container. Consider the following:

\n
public class Foo : IFoo1, IFoo2\n{\n    public Foo()\n    {\n    }\n\n    public Foo(object _)\n    {\n    }\n}\n\ncontainer.RegisterInstance<IFoo>(new Foo(), InstanceLifetime.Singleton);\n\ncontainer.RegisterType<IFoo1, Foo>();\n
\n

The container has a registration for type Foo. When interface IFoo1 is mapped to Foo it instructs the container to resolve the default implementation for the type Foo. Because the mapping does not provide any instructions how the type should be built, the default implementation, or existing registration should be used.

\n

So, when the container will be resolving IFoo1 it will first check if Foo is already registered and will used the registration to satisfy the request.

\n

If a mapping references non existing service the container will try to build the service from the implementation type.

\n

Building Implementation Type

\n

If the implementation type points to no existing registration or if an instance has to be created using certain rules, the container will create a new, independent pipeline and execute. So if you register IFoo2 like this:

\n
container.RegisterType<IFoo2, Foo>(Invoke.Constructor());\n
\n

the Unity container will not redirect to Foo but will create a new instance of Foo and call default constructor.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T01:18:55Z"},"_path":"tutorials/composition/mapping/implementation/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/mapping/implementation/","conceptual":"\n

Service to Implementation mapping is done during the service registration.

\n

The Service Itself

\n

The simplest type of registration is when service is registered by its own type. For Type and Instance registration you could do so by simply registering the type or the instance:

\n
container.RegisterType<Foo>();\ncontainer.RegisterInstance(new Foo());\n
\n

A factory has to specify type it is registered under:

\n
container.RegisterFactory<Foo>((c, t, n) => new Foo());\n
\n

Mapping Contract to Implementation

\n

When you map Registered type to implementation type you specify an service type first and implementation type second:

\n
container.RegisterType<IFoo, Foo>();\ncontainer.RegisterInstance<IFoo>(new Foo());\n
\n

In case of factory registration the container does not care how it is implemented by the factory, all it cares is how it is registered:

\n
container.RegisterFactory<IFoo>((c, t, n) => new Foo());\n
\n

Building and Mapping to Implementation

\n

Mapping allows redirection to existing registrations and services as well as building new instances of implementation types.

\n

Mapping to Existing Service

\n

The Unity container supports a scenario where a mapping does not crate type itself but rather references existing service registered with the container. Consider the following:

\n
public class Foo : IFoo1, IFoo2\n{\n    public Foo()\n    {\n    }\n\n    public Foo(object _)\n    {\n    }\n}\n\ncontainer.RegisterInstance<IFoo>(new Foo(), InstanceLifetime.Singleton);\n\ncontainer.RegisterType<IFoo1, Foo>();\n
\n

The container has a registration for type Foo. When interface IFoo1 is mapped to Foo it instructs the container to resolve the default implementation for the type Foo. Because the mapping does not provide any instructions how the type should be built, the default implementation, or existing registration should be used.

\n

So, when the container will be resolving IFoo1 it will first check if Foo is already registered and will used the registration to satisfy the request.

\n

If a mapping references non existing service the container will try to build the service from the implementation type.

\n

Building Implementation Type

\n

If the implementation type points to no existing registration or if an instance has to be created using certain rules, the container will create a new, independent pipeline and execute. So if you register IFoo2 like this:

\n
container.RegisterType<IFoo2, Foo>(Invoke.Constructor());\n
\n

the Unity container will not redirect to Foo but will create a new instance of Foo and call default constructor.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/implementation.md","depot_name":".","document_id":"67e38e86-49da-e80c-aa14-d18939f99491","document_version_independent_id":"6916f8de-fba9-4c35-b3b8-6cc40a8e8412","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Mapping/implementation.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/implementation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Mapping/implementation.md","rawTitle":"

Service to Implementation Mapping

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Service to Implementation Mapping","uid":"Tutorial.Mapping.Implementation","updated_at":"2019-04-30 01:18 AM","wordCount":351},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/mapping/mapping/index.html b/_site/tutorials/composition/mapping/mapping/index.html deleted file mode 100644 index e1afed7..0000000 --- a/_site/tutorials/composition/mapping/mapping/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

In service oriented architecture components expose services through well known contracts. In C# terms the contracts are the abstract classes or interfaces these components and services are exposing. So when we say service type, in most of the cases, we mean the interfaces implementing the contract. And the components are called Implementation types.

\n

Unity allows to publish these components and make all the contracts they implement available to clients to consume. This publishing and "advertisement" is done by registering types and interfaces (contracts) associated with components.

\n

Registration Type

\n

Registration type is the type of the 'Contract' this service provides. It could be the Type of the service itself of any of the base types it implements.

\n

Service To Implementation Mapping

\n

The mapping is done when service is registered. Any type of registration (Type, Factory, Instance) allow to associate a service with different contracts.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T01:18:55Z"},"_path":"tutorials/composition/mapping/mapping/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/mapping/mapping/","conceptual":"\n

In service oriented architecture components expose services through well known contracts. In C# terms the contracts are the abstract classes or interfaces these components and services are exposing. So when we say service type, in most of the cases, we mean the interfaces implementing the contract. And the components are called Implementation types.

\n

Unity allows to publish these components and make all the contracts they implement available to clients to consume. This publishing and "advertisement" is done by registering types and interfaces (contracts) associated with components.

\n

Registration Type

\n

Registration type is the type of the 'Contract' this service provides. It could be the Type of the service itself of any of the base types it implements.

\n

Service To Implementation Mapping

\n

The mapping is done when service is registered. Any type of registration (Type, Factory, Instance) allow to associate a service with different contracts.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/mapping.md","depot_name":".","document_id":"114f92db-344c-abca-7962-b9478c9610ee","document_version_independent_id":"ad129655-e31c-3d02-6062-cb5934ae425f","gitcommit":"https://github.com/unitycontainer/documentation/blob/ba6c8d58ec404ad0451d4a77b857483b11fc2a78/tutorials/Composition/Mapping/mapping.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Mapping/mapping.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Mapping/mapping.md","rawTitle":"

Type Mapping

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Type Mapping","uid":"Tutorial.Mapping","updated_at":"2019-04-30 01:18 AM","wordCount":143},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/overrides/dependency/index.html b/_site/tutorials/composition/overrides/dependency/index.html deleted file mode 100644 index 84cee96..0000000 --- a/_site/tutorials/composition/overrides/dependency/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Dependency override is a special kind of override. It does not target any members or parameters. Instead, it overrides a contract that the container would have resolved when requested. In other words, when the dependency is being resolved from the container, if the contract matches, it will provide that value instead.

\n

Injected Members and Dependency overrides

\n

There are two types of dependency injection the Unity container supports:

\n
    \n
  • Value injection
  • \n
  • Value resolution
  • \n
\n

To understand how Dependency Override works you need to remember, it only overrides resolved values.

\n

Injected Values

\n

Values are injected during Type registration. At that time you provide instructions on how to initialize the Type and its members. The members injected with values via Injection Members will not be affected by the Dependency Override.

\n

Resolved Values

\n

All the dependencies that are not injected with values, or injected with resolve redirection are potential targets for the override. Anything that asks the container to resolve a value can be Dependency Overridden.

\n

Overriding dependencies

\n

Dependency Override enables you to specify an override for the specified dependency type contract. It, enables you to pass in an object that will be returned as a dependency, instead of the one resolved from the container.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/overrides/dependency/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/overrides/dependency/","conceptual":"\n

Dependency override is a special kind of override. It does not target any members or parameters. Instead, it overrides a contract that the container would have resolved when requested. In other words, when the dependency is being resolved from the container, if the contract matches, it will provide that value instead.

\n

Injected Members and Dependency overrides

\n

There are two types of dependency injection the Unity container supports:

\n
    \n
  • Value injection
  • \n
  • Value resolution
  • \n
\n

To understand how Dependency Override works you need to remember, it only overrides resolved values.

\n

Injected Values

\n

Values are injected during Type registration. At that time you provide instructions on how to initialize the Type and its members. The members injected with values via Injection Members will not be affected by the Dependency Override.

\n

Resolved Values

\n

All the dependencies that are not injected with values, or injected with resolve redirection are potential targets for the override. Anything that asks the container to resolve a value can be Dependency Overridden.

\n

Overriding dependencies

\n

Dependency Override enables you to specify an override for the specified dependency type contract. It, enables you to pass in an object that will be returned as a dependency, instead of the one resolved from the container.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/dependency.md","depot_name":".","document_id":"a57a3be5-47d3-51c5-f36f-7bb1a351d43f","document_version_independent_id":"7e8b2795-7571-1855-6237-b30f66013643","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/dependency.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/dependency.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/dependency.md","rawTitle":"

Dependency Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Dependency Override","uid":"Tutorial.Resolution.Override.Dependency","updated_at":"2019-04-30 12:00 AM","wordCount":199},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/overrides/field/index.html b/_site/tutorials/composition/overrides/field/index.html deleted file mode 100644 index 157e867..0000000 --- a/_site/tutorials/composition/overrides/field/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

FieldOverride enables you to override the value for a specified field. Only the field value is overridden, not the properties selected. Its behavior is the same as ParameterOverride. The use of the OnType method enables you to specify a type to constrain the override to.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/overrides/field/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/overrides/field/","conceptual":"\n

FieldOverride enables you to override the value for a specified field. Only the field value is overridden, not the properties selected. Its behavior is the same as ParameterOverride. The use of the OnType method enables you to specify a type to constrain the override to.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/field.md","depot_name":".","document_id":"7054362e-ab65-8ef6-cce1-7a89caee8ea0","document_version_independent_id":"f4d61c91-c65f-610e-5706-372bc1405786","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/field.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/field.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/field.md","rawTitle":"

Field Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Field Overrides","uid":"Tutorial.Resolution.Override.Field","updated_at":"2019-04-30 12:00 AM","wordCount":45},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/overrides/override/index.html b/_site/tutorials/composition/overrides/override/index.html deleted file mode 100644 index 12a3ba3..0000000 --- a/_site/tutorials/composition/overrides/override/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

The parameter and dependency overrides, ParameterOverride and DependencyOverride, are ResolverOverride implementations that provide support for overriding the registration information for resolving instances of types. When you call the Resolve method, these classes enable you to override values specified when the type was registered, such as by a RegisterType or RegisterInstance statement. In effect, RegisterType supplied values are overridden by Resolve supplied values.

\n

Use ParameterOverride to override the specified constructor parameter or parameters. The override applies everywhere the parameter appears unless you use OnType to constrain the override to a specified type. Since the purpose of overrides is to affect the resolution of dependencies for all relevant created objects, not just the object requested in the call to Resolve, unconstrained overrides can produce errors if there are unconstrained ParameterOverride parameters that match parameters with the same name but different types on the selected constructors for objects created in a given resolve operation.

\n

Use PropertyOverride to override the value of the specified property or properties. The override applies everywhere the property appears unless you use OnType to constrain the override to a specified type.

\n

Use DependencyOverride to override the value injected whenever there is a dependency of the given type. DependencyOverride overrides all instances where the type matches. Both parameter overrides and dependency overrides support generic types and multiple overrides.

\n

Overrides work with the constructor that is selected for the type, by attribute or configuration. If the constructor to be used is not identified with an attribute or explicit container configuration, then the default behavior is that the constructor with the most parameters will be used.

\n

A parameter and property override never affects what element gets selected. They only control the value of the specified parameter or property. You do not change which constructor is called with an override, and you do not change which properties get set with an override.

\n\n

\"Resolver

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/overrides/override/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/overrides/override/","conceptual":"\n

The parameter and dependency overrides, ParameterOverride and DependencyOverride, are ResolverOverride implementations that provide support for overriding the registration information for resolving instances of types. When you call the Resolve method, these classes enable you to override values specified when the type was registered, such as by a RegisterType or RegisterInstance statement. In effect, RegisterType supplied values are overridden by Resolve supplied values.

\n

Use ParameterOverride to override the specified constructor parameter or parameters. The override applies everywhere the parameter appears unless you use OnType to constrain the override to a specified type. Since the purpose of overrides is to affect the resolution of dependencies for all relevant created objects, not just the object requested in the call to Resolve, unconstrained overrides can produce errors if there are unconstrained ParameterOverride parameters that match parameters with the same name but different types on the selected constructors for objects created in a given resolve operation.

\n

Use PropertyOverride to override the value of the specified property or properties. The override applies everywhere the property appears unless you use OnType to constrain the override to a specified type.

\n

Use DependencyOverride to override the value injected whenever there is a dependency of the given type. DependencyOverride overrides all instances where the type matches. Both parameter overrides and dependency overrides support generic types and multiple overrides.

\n

Overrides work with the constructor that is selected for the type, by attribute or configuration. If the constructor to be used is not identified with an attribute or explicit container configuration, then the default behavior is that the constructor with the most parameters will be used.

\n

A parameter and property override never affects what element gets selected. They only control the value of the specified parameter or property. You do not change which constructor is called with an override, and you do not change which properties get set with an override.

\n\n

\"Resolver

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/override.md","depot_name":".","document_id":"c6321cd0-ca7d-d962-a1d6-cafd2304b46d","document_version_independent_id":"d81b6079-c1d9-1fb6-de0e-275b2b70cf4a","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/override.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/override.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/override.md","rawTitle":"

Overriding dependencies during resolution

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Resolution Override","uid":"Tutorial.Resolution.Override","updated_at":"2019-04-30 12:00 AM","wordCount":317},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/overrides/parameter/index.html b/_site/tutorials/composition/overrides/parameter/index.html deleted file mode 100644 index e54ff40..0000000 --- a/_site/tutorials/composition/overrides/parameter/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Unity enables you to pass in values for parameter dependencies to override a parameter passed to a given constructor or method. Only the parameter value is overridden, not the constructor or method selection.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/overrides/parameter/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/overrides/parameter/","conceptual":"\n

Unity enables you to pass in values for parameter dependencies to override a parameter passed to a given constructor or method. Only the parameter value is overridden, not the constructor or method selection.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/parameter.md","depot_name":".","document_id":"ba453611-c12b-550a-6561-07b81942e916","document_version_independent_id":"8aeb5e95-0a66-e52d-6553-af3a0ae20166","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/parameter.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/parameter.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/parameter.md","rawTitle":"

Parameter Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Parameter Override","uid":"Tutorial.Resolution.Override.Parameter","updated_at":"2019-04-30 12:00 AM","wordCount":33},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/overrides/property/index.html b/_site/tutorials/composition/overrides/property/index.html deleted file mode 100644 index 0f0bebd..0000000 --- a/_site/tutorials/composition/overrides/property/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

PropertyOverride enables you to override the value for a specified property. Only the property value is overridden, not the properties selected. Its behavior is the same as ParameterOverride. The use of the OnType method enables you to specify a type to constrain the override to.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/overrides/property/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/overrides/property/","conceptual":"\n

PropertyOverride enables you to override the value for a specified property. Only the property value is overridden, not the properties selected. Its behavior is the same as ParameterOverride. The use of the OnType method enables you to specify a type to constrain the override to.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/property.md","depot_name":".","document_id":"9bee940d-3cf7-23a1-fc98-ed62d6797ee2","document_version_independent_id":"a616e5e2-d7c1-7f70-d255-96f921f486df","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Overrides/property.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Overrides/property.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Overrides/property.md","rawTitle":"

Property Override

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Override","uid":"Tutorial.Resolution.Override.Property","updated_at":"2019-04-30 12:00 AM","wordCount":45},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/resolution/resolution/index.html b/_site/tutorials/composition/resolution/resolution/index.html deleted file mode 100644 index 9761af5..0000000 --- a/_site/tutorials/composition/resolution/resolution/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

There are types you can create immediately from the container and there are types that require registration. Generally any primitive type would require registration and all classes are available immediately.

\n

You can use the Unity container to generate instances of any object that has a public constructor (in other words, objects that you can create using the new operator). When you call the Resolve method and specify the type that is not registered, the container simply generates and returns an instance of that type. However, the only time that this is realistically practical is when the object you are generating does not have ambiguities Unity could not resolve or contains dependency attributes that the container will use to inject dependent objects into the requested object.

\n

The Unity container identifies type registrations and type mappings in the container using a type and, optionally, a name. The type is an interface or a class (usually an interface or base class) that the desired concrete object type implements or inherits. This identifies the mapping so that the container can retrieve the correct object type in response to a call to the Resolve method. Where there is more than one mapping for the same type, the optional name differentiates these mappings and allows code to specify which of the mappings for that type to use.

\n

The provision of both generic and non-generic overloads of many of the Unity container methods ensures that Unity can be used in languages that do not support generics. You can use either approach (the generic or the non-generic overloads) in your code and mix them as required.

\n

The following topics describe how you can resolve objects using the Resolve or BuildUp methods:

\n\n

For more information about how you can configure Unity with type registrations and mappings, see Registration.

\n

For more information about how you can perform dependency injection on existing object instances, see Using BuildUp to Wire Up Objects Not Created by the Container.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/resolution/resolution/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/resolution/resolution/","conceptual":"\n

There are types you can create immediately from the container and there are types that require registration. Generally any primitive type would require registration and all classes are available immediately.

\n

You can use the Unity container to generate instances of any object that has a public constructor (in other words, objects that you can create using the new operator). When you call the Resolve method and specify the type that is not registered, the container simply generates and returns an instance of that type. However, the only time that this is realistically practical is when the object you are generating does not have ambiguities Unity could not resolve or contains dependency attributes that the container will use to inject dependent objects into the requested object.

\n

The Unity container identifies type registrations and type mappings in the container using a type and, optionally, a name. The type is an interface or a class (usually an interface or base class) that the desired concrete object type implements or inherits. This identifies the mapping so that the container can retrieve the correct object type in response to a call to the Resolve method. Where there is more than one mapping for the same type, the optional name differentiates these mappings and allows code to specify which of the mappings for that type to use.

\n

The provision of both generic and non-generic overloads of many of the Unity container methods ensures that Unity can be used in languages that do not support generics. You can use either approach (the generic or the non-generic overloads) in your code and mix them as required.

\n

The following topics describe how you can resolve objects using the Resolve or BuildUp methods:

\n\n

For more information about how you can configure Unity with type registrations and mappings, see Registration.

\n

For more information about how you can perform dependency injection on existing object instances, see Using BuildUp to Wire Up Objects Not Created by the Container.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/resolution.md","depot_name":".","document_id":"1dde0392-5274-483b-f246-6a10afef0c27","document_version_independent_id":"09d0cec4-ec13-4b5a-a4d6-a94c867fe156","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Resolution/resolution.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/resolution.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Resolution/resolution.md","rawTitle":"

Resolving Objects

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Object Resolution","uid":"Tutorial.Resolution","updated_at":"2019-04-30 12:00 AM","wordCount":347},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/resolution/type/index.html b/_site/tutorials/composition/resolution/type/index.html deleted file mode 100644 index c095207..0000000 --- a/_site/tutorials/composition/resolution/type/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Unity provides a method named Resolve that you can use to resolve an object by type, and optionally by providing a registration name. Registrations that do not specify a name are referred to as default registrations. This topic describes how to use the Resolve method to resolve types and mappings registered as default registrations.

\n

The Resolve Method Overloads for Default Registrations

\n

The following table describes the overloads of the Resolve method that return instances of objects based on the default registrations and mappings with the container. The API for the Unity container contains both generic and non-generic overloads of this method so that you can use it with languages that do not support the generics syntax.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MethodDescription
Resolve<T>()Returns an instance of the type registered with the default name as the type T.
Resolve(Type t)Returns an instance of the default type registered with the container as the type t.
Resolve<T>(string name)Returns an instance of the type registered with the container as the type T and with the specified name. Names are case sensitive.
Resolve(Type t, string name)Returns an instance of the type registered with the container as the type t and with the specified name. Names are case sensitive.
\n

Using the Resolve Method with Default Registrations

\n

The following examples show how you can use the Resolve method to create or obtain a reference to an object defined in the container configuration. Typically you will register a type mapping between an interface and a concrete type that implements it, or between a base class and a concrete type that inherits it. The examples use the run-time methods of the container to register the types it will resolve.

\n

Resolving Types Registered as Interfaces

\n

The following code registers a mapping for an interface named IService and specifies that the container should return an instance of the CustomerService class (which implements the IService interface). In this case, the type IService identifies the registration type. Code that requests an instance of the type IService receives an instance of the CustomerService class. The following example uses the generic overloads of the container methods.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\n\nvar instance = container.Resolve<IService>();\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\n\nvar instance = (IService)container.Resolve(typeof(IMyService));\n
\n

Resolving Types Registered as Base Classes

\n

When you need to register a mapping for a base class or other object type (instead of an interface), you use the overloads of the RegisterType and Resolve methods that accept object type names. The following examples show the use of the overloads of the RegisterType and Resolve methods that accept object type names as the registration identifier.

\n

The following code registers a mapping for an object named MyBaseService and specifies that the container should return an instance of the CustomerService class (which inherits from the MyBaseService class). In this case, the type MyBaseService identifies the registration. Code that requests an instance of the type MyBaseService receives an instance of the CustomerService class.

\n
IUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<MyBaseService, CustomerService>();\n\nMyBaseService myServiceInstance = myContainer.Resolve<MyBaseService>();\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType(typeof(MyBaseService), typeof(CustomerService));\n\nMyBaseService myServiceInstance = (MyBaseService)myContainer.Resolve(typeof(MyBaseService));\n
\n

Using the Resolve Method with Named Registrations

\n

If you need to create multiple registrations for the same type, you can specify a name to differentiate each registration. Then, to retrieve an object of the appropriate type, you specify the name and the registered type. Following examples demonstrate the technique:

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\ncontainer.RegisterType<IService, CompanyService>("name");\ncontainer.RegisterType<IService, ExternalService>("other name");\n\nvar instance = container.Resolve<IService>("name");\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, EmailService>();\ncontainer.RegisterType<IService, LDAPService>("name");\ncontainer.RegisterType<IService, CustomerService>("other name");\n\nvar instance = (IService)container.Resolve(typeof(IMyService), "other name");\n
\n

Note

\n

If the target class or object specifies any dependencies of its own, using constructor, property, or method call injection attributes, the instance returned will have these dependent objects injected automatically.

\n

By default, the RegisterType method registers a type with a transient lifetime, which means that the container will not hold onto a reference to the objects it creates when you call the Resolve method. Each time you call one of these methods, the container generates a new instance of the specified or mapped type. However, you can use lifetime managers to control the creation, lifetime, and disposal of objects if required.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/resolution/type/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/resolution/type/","conceptual":"\n

Unity provides a method named Resolve that you can use to resolve an object by type, and optionally by providing a registration name. Registrations that do not specify a name are referred to as default registrations. This topic describes how to use the Resolve method to resolve types and mappings registered as default registrations.

\n

The Resolve Method Overloads for Default Registrations

\n

The following table describes the overloads of the Resolve method that return instances of objects based on the default registrations and mappings with the container. The API for the Unity container contains both generic and non-generic overloads of this method so that you can use it with languages that do not support the generics syntax.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MethodDescription
Resolve<T>()Returns an instance of the type registered with the default name as the type T.
Resolve(Type t)Returns an instance of the default type registered with the container as the type t.
Resolve<T>(string name)Returns an instance of the type registered with the container as the type T and with the specified name. Names are case sensitive.
Resolve(Type t, string name)Returns an instance of the type registered with the container as the type t and with the specified name. Names are case sensitive.
\n

Using the Resolve Method with Default Registrations

\n

The following examples show how you can use the Resolve method to create or obtain a reference to an object defined in the container configuration. Typically you will register a type mapping between an interface and a concrete type that implements it, or between a base class and a concrete type that inherits it. The examples use the run-time methods of the container to register the types it will resolve.

\n

Resolving Types Registered as Interfaces

\n

The following code registers a mapping for an interface named IService and specifies that the container should return an instance of the CustomerService class (which implements the IService interface). In this case, the type IService identifies the registration type. Code that requests an instance of the type IService receives an instance of the CustomerService class. The following example uses the generic overloads of the container methods.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\n\nvar instance = container.Resolve<IService>();\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\n\nvar instance = (IService)container.Resolve(typeof(IMyService));\n
\n

Resolving Types Registered as Base Classes

\n

When you need to register a mapping for a base class or other object type (instead of an interface), you use the overloads of the RegisterType and Resolve methods that accept object type names. The following examples show the use of the overloads of the RegisterType and Resolve methods that accept object type names as the registration identifier.

\n

The following code registers a mapping for an object named MyBaseService and specifies that the container should return an instance of the CustomerService class (which inherits from the MyBaseService class). In this case, the type MyBaseService identifies the registration. Code that requests an instance of the type MyBaseService receives an instance of the CustomerService class.

\n
IUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType<MyBaseService, CustomerService>();\n\nMyBaseService myServiceInstance = myContainer.Resolve<MyBaseService>();\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer myContainer = new UnityContainer();\nmyContainer.RegisterType(typeof(MyBaseService), typeof(CustomerService));\n\nMyBaseService myServiceInstance = (MyBaseService)myContainer.Resolve(typeof(MyBaseService));\n
\n

Using the Resolve Method with Named Registrations

\n

If you need to create multiple registrations for the same type, you can specify a name to differentiate each registration. Then, to retrieve an object of the appropriate type, you specify the name and the registered type. Following examples demonstrate the technique:

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, CustomerService>();\ncontainer.RegisterType<IService, CompanyService>("name");\ncontainer.RegisterType<IService, ExternalService>("other name");\n\nvar instance = container.Resolve<IService>("name");\n
\n

Alternatively, you can use the non-generic overloads of the methods. The following code achieves the same result.

\n
IUnityContainer container = new UnityContainer();\ncontainer.RegisterType<IService, EmailService>();\ncontainer.RegisterType<IService, LDAPService>("name");\ncontainer.RegisterType<IService, CustomerService>("other name");\n\nvar instance = (IService)container.Resolve(typeof(IMyService), "other name");\n
\n

Note

\n

If the target class or object specifies any dependencies of its own, using constructor, property, or method call injection attributes, the instance returned will have these dependent objects injected automatically.

\n

By default, the RegisterType method registers a type with a transient lifetime, which means that the container will not hold onto a reference to the objects it creates when you call the Resolve method. Each time you call one of these methods, the container generates a new instance of the specified or mapped type. However, you can use lifetime managers to control the creation, lifetime, and disposal of objects if required.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/type.md","depot_name":".","document_id":"828ddeb7-d1d0-42ca-3b7b-92e045095af2","document_version_independent_id":"00b7411d-8720-a67b-d3ce-17be06f6dca6","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Resolution/type.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Resolution/type.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Resolution/type.md","rawTitle":"

Resolving an Object by Type

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Resolution By Type","uid":"Tutorial.Resolution.Type","updated_at":"2019-04-30 12:00 AM","wordCount":750},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/selection/constructor/index.html b/_site/tutorials/composition/selection/constructor/index.html deleted file mode 100644 index b31cb28..0000000 --- a/_site/tutorials/composition/selection/constructor/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Proper selection of the constructor used for type instantiation is one of the most important aspects of the container operation. When creating an object, the container uses one of the following algorithms to select a constructor it will be using to initialize the object:

\n\n

Automatic Constructor Selection

\n

Automatic constructor selection is performed if no other information is available on how to create a Type. Unity uses dynamic, real time algorithm to discover and select a constructor.

\n

The Unity container will try to execute the most complex constructor it can provide with appropriate dependencies. In other words, if the container can resolve and/or inject all parameters of the constructor, it will be selected.

\n

Creating Build Pipeline

\n

Selection process takes place during the first resolution of a Type contract. Unity container employs lazy resolution strategy. It will defer pipeline creation until the contract (RegistrationType and Name) is requested.

\n

The lazy approach allows registrations to proceed at random order and do not require dependencies to be registered before dependents. As long as all of these are available at the time of resolution Unity does not care in what order they were registered.

\n

Constructor Selection Steps

\n

One of the first steps, when creating a pipeline, is a constructor selection. Constructors are selected in the following order:

\n
    \n
  • If present, use registered Injection Constructor
  • \n
  • If present, annotated with an attribute
  • \n
  • Automatically select constructor\n
      \n
    • Get all accessible constructors
    • \n
    • Process constructors in ascending order from most complex to the default\n
        \n
      • Filter out restricted constructors
      • \n
      • Loop through parameters and check if\n
          \n
        • Is primitive\n
            \n
          • Is registered with the container
          • \n
          • Has default value
          • \n
          \n
        • \n
        • Is resolvable type
        • \n
        • Is registered with container
        • \n
        \n
      • \n
      • Select the first constructor the container can create
      • \n
      \n
    • \n
    \n
  • \n
\n

The Unity container will select the first successful match and use it as a selection.

\n
\n
WARNING
\n

When more than one constructor could be matched at the same time, the order and constructor selection can not be guaranteed.

\n
\n

During normal operation the container does not perform validation.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will perform a selection validation and will throw an exception, reporting ambiguous constructors, if more than one constructor can be successfully selected with current configuration.

\n
\n

If no constructor could be selected, the container will throw an exception.

\n

Pipeline retention

\n

Once the pipeline is created, it will be used to satisfy all subsequent requests for that contract. If you need to update or rebuild the pipeline, the contract has to be re-registered.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/selection/constructor/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/selection/constructor/","conceptual":"\n

Proper selection of the constructor used for type instantiation is one of the most important aspects of the container operation. When creating an object, the container uses one of the following algorithms to select a constructor it will be using to initialize the object:

\n\n

Automatic Constructor Selection

\n

Automatic constructor selection is performed if no other information is available on how to create a Type. Unity uses dynamic, real time algorithm to discover and select a constructor.

\n

The Unity container will try to execute the most complex constructor it can provide with appropriate dependencies. In other words, if the container can resolve and/or inject all parameters of the constructor, it will be selected.

\n

Creating Build Pipeline

\n

Selection process takes place during the first resolution of a Type contract. Unity container employs lazy resolution strategy. It will defer pipeline creation until the contract (RegistrationType and Name) is requested.

\n

The lazy approach allows registrations to proceed at random order and do not require dependencies to be registered before dependents. As long as all of these are available at the time of resolution Unity does not care in what order they were registered.

\n

Constructor Selection Steps

\n

One of the first steps, when creating a pipeline, is a constructor selection. Constructors are selected in the following order:

\n
    \n
  • If present, use registered Injection Constructor
  • \n
  • If present, annotated with an attribute
  • \n
  • Automatically select constructor\n
      \n
    • Get all accessible constructors
    • \n
    • Process constructors in ascending order from most complex to the default\n
        \n
      • Filter out restricted constructors
      • \n
      • Loop through parameters and check if\n
          \n
        • Is primitive\n
            \n
          • Is registered with the container
          • \n
          • Has default value
          • \n
          \n
        • \n
        • Is resolvable type
        • \n
        • Is registered with container
        • \n
        \n
      • \n
      • Select the first constructor the container can create
      • \n
      \n
    • \n
    \n
  • \n
\n

The Unity container will select the first successful match and use it as a selection.

\n
\n
WARNING
\n

When more than one constructor could be matched at the same time, the order and constructor selection can not be guaranteed.

\n
\n

During normal operation the container does not perform validation.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will perform a selection validation and will throw an exception, reporting ambiguous constructors, if more than one constructor can be successfully selected with current configuration.

\n
\n

If no constructor could be selected, the container will throw an exception.

\n

Pipeline retention

\n

Once the pipeline is created, it will be used to satisfy all subsequent requests for that contract. If you need to update or rebuild the pipeline, the contract has to be re-registered.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/constructor.md","depot_name":".","document_id":"aea11f2a-6c27-f320-3e46-c7b606c05557","document_version_independent_id":"cd59209a-97e5-ae23-fabe-a9a5b024c9a4","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Selection/constructor.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Selection/constructor.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Automatic Constructor Selection","uid":"Tutorial.Selection.Constructor","updated_at":"2019-04-30 12:00 AM","wordCount":490},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/composition/selection/selection/index.html b/_site/tutorials/composition/selection/selection/index.html deleted file mode 100644 index 39b2391..0000000 --- a/_site/tutorials/composition/selection/selection/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/composition/selection/selection/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/composition/selection/selection/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/selection.md","depot_name":".","document_id":"773829b3-06bb-7923-fe4b-0867d098e405","document_version_independent_id":"ad545286-383e-94cb-a269-1c679ef100bf","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/Composition/Selection/selection.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Composition/Selection/selection.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Composition/Selection/selection.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Selection","uid":"Tutorial.Resolution.Selection","updated_at":"2019-04-30 12:00 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/definitions/index.html b/_site/tutorials/definitions/index.html deleted file mode 100644 index d6e31f8..0000000 --- a/_site/tutorials/definitions/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Generics terminology

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/14/2019","updated_at_date_time":"2019-03-14T02:57:48Z"},"_path":"tutorials/definitions/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/tutorials/definitions/","conceptual":"\n

Generics terminology

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/definitions.md","depot_name":".","document_id":"04c5b240-961a-772a-7817-54e0bccae982","document_version_independent_id":"fa33c497-8117-ccce-36b1-aa3aa1d9adca","gitcommit":"https://github.com/unitycontainer/documentation/blob/a13df4070c33d6413bfa4faeecf4416ffd5f4330/tutorials/definitions.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/definitions.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/definitions.md","rawTitle":"

Terms and Definitions

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Terms and Definitions","uid":"Tutorial.Terms","updated_at":"2019-03-14 02:57 AM","wordCount":2},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/extensions/activation/index.html b/_site/tutorials/extensions/activation/index.html deleted file mode 100644 index ce85329..0000000 --- a/_site/tutorials/extensions/activation/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/extensions/activation/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/extensions/activation/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/activation.md","depot_name":".","document_id":"e2640f64-1956-be9e-d1a7-e34a5362fb8a","document_version_independent_id":"afd125e2-8bf4-f155-47be-a8e5a74167ea","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/activation.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/activation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/activation.md","rawTitle":"

Force Activation Extension

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Force Activation Extension","uid":"Tutorial.Extension.Activation","updated_at":"2019-04-05 01:56 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/extensions/compilation/index.html b/_site/tutorials/extensions/compilation/index.html deleted file mode 100644 index ba598c7..0000000 --- a/_site/tutorials/extensions/compilation/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/extensions/compilation/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/extensions/compilation/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/compilation.md","depot_name":".","document_id":"48ad6cfd-57bb-860b-c35c-bcb80309ad1f","document_version_independent_id":"b9e3cc08-5d2e-b6ff-1c10-1d5b98a5cb54","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/compilation.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/compilation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/compilation.md","rawTitle":"

Force Compilation Extension

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Force Compilation Extension","uid":"Tutorial.Extension.Compilation","updated_at":"2019-04-05 01:56 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/extensions/diagnostic/index.html b/_site/tutorials/extensions/diagnostic/index.html deleted file mode 100644 index 4efa05e..0000000 --- a/_site/tutorials/extensions/diagnostic/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Creating and configuring Unity container is a complicated process. A lot of things could go wrong and finding where it was misconfigured could be rather involved. To simplify debugging and to help fix issues Unity offers Diagnostic extension.

\n

Performance considerations

\n

The Unity container uses reflection for most of its operations. It gathers information about types, creates pipelines to create these types, and verifies everything all based on reflected data. Because of that it is rather resource extensive and relatively slow.

\n

To optimize performance, Unity engine does not do any runtime validation and only performs absolute minimum checks, just enough to be able to run. As result a lot of irregular conditions might go unnoticed. To remedy this, the container exposes Diagnostic extension which does thorough examination of all registration data and throws exceptions on any irregularities.

\n

Unity Diagnostic Extension

\n

Diagnostic extension, among other things, verifies the following conditions:

\n
    \n
  • Cyclical references (The famous Stack Overflow Exception)
  • \n
  • Validity of provided Injection Members
  • \n
  • Improper referencing to itself
  • \n
  • Invalid parameters in constructors and invoked methods
  • \n
\n

Enabling Diagnostics

\n

The extension could be enabled in few different ways:

\n

Add Extension

\n

The most basic case is when extension is added via AddExtension(...) call. It works with either regular or generic methods.

\n
var container = new UnityContainer()\n                .AddExtension(new Diagnostic());\n
\n

or

\n
var container = new UnityContainer()\n                .AddExtension<Diagnostic>();\n
\n

The first method, one with AddExtension(new Diagnostic()) is a bit faster.

\n

Using extension method

\n

For convenience, Unity container exposes EnableDiagnostic() extension method. This method is equal to adding extension to the container.

\n
var container = new UnityContainer()\n                    .EnableDiagnostic();\n
\n

Enabling extension only in Debug

\n

The container provides conditional extension EnableDebugDiagnostic(). This method will only enable diagnostics in DEBUG mode. In this example

\n
var container = new UnityContainer();\ncontainer.EnableDebugDiagnostic();\n
\n

the extension is enabled only if calling method is compiled in Debug configuration.

\n
\n
IMPORTANT
\n

Extension methods will not work on IUnityContainer interface. It is only available on the UnityContainer itself.

\n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:59:45Z"},"_path":"tutorials/extensions/diagnostic/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/extensions/diagnostic/","conceptual":"\n

Creating and configuring Unity container is a complicated process. A lot of things could go wrong and finding where it was misconfigured could be rather involved. To simplify debugging and to help fix issues Unity offers Diagnostic extension.

\n

Performance considerations

\n

The Unity container uses reflection for most of its operations. It gathers information about types, creates pipelines to create these types, and verifies everything all based on reflected data. Because of that it is rather resource extensive and relatively slow.

\n

To optimize performance, Unity engine does not do any runtime validation and only performs absolute minimum checks, just enough to be able to run. As result a lot of irregular conditions might go unnoticed. To remedy this, the container exposes Diagnostic extension which does thorough examination of all registration data and throws exceptions on any irregularities.

\n

Unity Diagnostic Extension

\n

Diagnostic extension, among other things, verifies the following conditions:

\n
    \n
  • Cyclical references (The famous Stack Overflow Exception)
  • \n
  • Validity of provided Injection Members
  • \n
  • Improper referencing to itself
  • \n
  • Invalid parameters in constructors and invoked methods
  • \n
\n

Enabling Diagnostics

\n

The extension could be enabled in few different ways:

\n

Add Extension

\n

The most basic case is when extension is added via AddExtension(...) call. It works with either regular or generic methods.

\n
var container = new UnityContainer()\n                .AddExtension(new Diagnostic());\n
\n

or

\n
var container = new UnityContainer()\n                .AddExtension<Diagnostic>();\n
\n

The first method, one with AddExtension(new Diagnostic()) is a bit faster.

\n

Using extension method

\n

For convenience, Unity container exposes EnableDiagnostic() extension method. This method is equal to adding extension to the container.

\n
var container = new UnityContainer()\n                    .EnableDiagnostic();\n
\n

Enabling extension only in Debug

\n

The container provides conditional extension EnableDebugDiagnostic(). This method will only enable diagnostics in DEBUG mode. In this example

\n
var container = new UnityContainer();\ncontainer.EnableDebugDiagnostic();\n
\n

the extension is enabled only if calling method is compiled in Debug configuration.

\n
\n
IMPORTANT
\n

Extension methods will not work on IUnityContainer interface. It is only available on the UnityContainer itself.

\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/diagnostic.md","depot_name":".","document_id":"b64b01be-61e5-4cb2-e0ba-303da7dd561a","document_version_independent_id":"866e42fd-367d-52c3-d247-d1cd88951345","gitcommit":"https://github.com/unitycontainer/documentation/blob/8308246108d439f29e11e853c6daa702c58ba726/tutorials/Extensions/diagnostic.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/diagnostic.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/diagnostic.md","rawTitle":"

Diagnostic

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Diagnostic Extension","uid":"Tutorial.Extension.Diagnostic","updated_at":"2019-04-05 01:59 AM","wordCount":315},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/extensions/extensions/index.html b/_site/tutorials/extensions/extensions/index.html deleted file mode 100644 index b0fbfaa..0000000 --- a/_site/tutorials/extensions/extensions/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Unity container comes prepackaged with several extensions:

\n
    \n
  • Diagnostic Extension
  • \n
  • Legacy Constructor Selector Extension
  • \n
  • Force Compilation Extension
  • \n
  • Force Activation Extension
  • \n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/extensions/extensions/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/extensions/extensions/","conceptual":"\n

Unity container comes prepackaged with several extensions:

\n
    \n
  • Diagnostic Extension
  • \n
  • Legacy Constructor Selector Extension
  • \n
  • Force Compilation Extension
  • \n
  • Force Activation Extension
  • \n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/extensions.md","depot_name":".","document_id":"175515ab-3a5e-0514-8749-ed0171ff6bd0","document_version_independent_id":"af9fca54-a600-b1ab-4b7a-4cdde5a31dae","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/extensions.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/extensions.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/extensions.md","rawTitle":"

Unity Extensions

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Unity Extensions","uid":"Tutorial.Extensions","updated_at":"2019-04-05 01:56 AM","wordCount":19},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/extensions/legacy/index.html b/_site/tutorials/extensions/legacy/index.html deleted file mode 100644 index 920cbcf..0000000 --- a/_site/tutorials/extensions/legacy/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/extensions/legacy/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/extensions/legacy/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/legacy.md","depot_name":".","document_id":"562b10a8-2c05-2a01-04d6-0be4b44f6361","document_version_independent_id":"67ecddf7-6f6f-c595-4348-6f44de20a0a3","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/Extensions/legacy.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/Extensions/legacy.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/Extensions/legacy.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Legacy Extension","uid":"Tutorial.Extension.Legacy","updated_at":"2019-04-05 01:56 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/hierarchies/index.html b/_site/tutorials/hierarchies/index.html deleted file mode 100644 index b2ee15b..0000000 --- a/_site/tutorials/hierarchies/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Unity container provides a way to create child containers (other systems refer to it as resolution scopes) and allows building sophisticated scope trees of registrations. There are just a few simple rules to follow when dealing with container hierarchies:

\n
    \n
  • Types registered in predecessor containers always available in descendant containers. This is a very simple concept, each registration is like a public virtual declaration in cs types. Every descendant inherits it and can use at will.

    \n
  • \n
  • Types registered in descendant containers override the same registration of predecessors. Following the same analogy with public virtual declarations, each override registration installs its own declaration and hides the one in predecessor containers.

    \n
  • \n
\n

Using Container Hierarchies

\n

Unity supports nested containers, allowing you to build container hierarchies. Nesting containers enables you to control the scope and lifetime of singleton objects, and register different mappings for specific types. This topic contains the following sections that describe how you can create container hierarchies and use them in your applications:

\n
    \n
  • Constructing and Disposing Unity Containers
  • \n
  • Controlling Object Scope and Lifetime
  • \n
  • Overriding registrations
  • \n
\n

Constructing and Disposing Unity Containers

\n

The following methods enable you to create a new default UnityContainer, create a child container that has a specified UnityContainer as its parent, and dispose an existing container.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MethodDescription
new UnityContainer()Creates a root UnityContainer. Returns a reference to the new container.
CreateChildContainer()Creates a new nested UnityContainer as a child of the current container. The current container first applies its own settings, and then it checks the parent for additional settings. Returns a reference to the new container.
Dispose()Disposes this container instance and any child containers. Also disposes any registered object instances whose lifetimes are managed by the container.
\n

Controlling Object Scope and Lifetime

\n

When the container creates singleton objects, it manages the lifetime of these singletons. They remain in scope until you (or the garbage collector) dispose the container. At this point, it disposes the registered singleton instances it contains. In addition, if you dispose the parent container in a nested container hierarchy, it automatically disposes all child containers and the registered singletons they contain.

\n

Therefore, if you require two separate sets of such objects that must have different lifetimes, you can use hierarchical containers to store and manage each set. Register instances that you want to be able to dispose separately in one or more child containers that you can dispose without disposing the parent container.

\n

The following code demonstrates the use of a child container to manage the lifetime of specific singleton instances while maintaining the singleton instances in the parent container.

\n
\n// Create parent container\nIUnityContainer parentCtr = new UnityContainer();\n\n// Register type in parent container\nparentCtr.RegisterType<MyParentObject>(TypeLifetime.PerContainer);\n\n// Create nested child container in parent container\nIUnityContainer childCtr = parentCtr.CreateChildContainer();\n\n// Register type in child container\nchildCtr.RegisterType<MyChildObject>(TypeLifetime.PerContainer);\n\n// Create instance of type stored in parent container\nMyParentObject parentObj = parentCtr.Resolve<MyParentObject>();\n\n// Create instance of type stored in child container\nMyChildObject childObj = childCtr.Resolve<MyChildObject>();\n\n// ... can use both generated objects here ...\n\n// Dispose child container\nchildCtr.Dispose();\n\n// ... can use only object in parent container here ...\n\n// Dispose parent container\nparentCtr.Dispose();\n
\n

Overriding registrations

\n

You can use nested containers when you have slightly different dependency injection requirements for specific objects but want to provide a fallback facility for objects that implement a specific interface or are of a specific type. For example, you may have a general requirement for objects that implement the IMyObject interface to map to the type MyStandardObject. However, in specific parts of the application code, you may want the IMyObject interface to map to the type MySpecialObject.

\n

In this case, you can register the general mapping in the parent container and register the specific case in a child container. Then, when you want to obtain an instance of the object, you call the Resolve method on the appropriate container. If you call the method on the child container, it returns an object of type MySpecialObject. If you call the method on the parent container, it returns an object of type MyStandardObject.

\n

However, the advantage with nested containers is that, if the child container cannot locate a mapping for the requested interface or type, it passes the request to its parent container and onward through the hierarchy until it reaches the root or base container. Therefore, for objects not mapped in the child container, the mapping in the parent container (or in an ancestor container where there are more than two levels in the hierarchy) defines the object type returned.

\n

The following code shows how you can implement the preceding scenario.

\n
// Create parent container\nIUnityContainer parentCtr = new UnityContainer();\n\n// Register two mappings for types in parent container\nparentCtr.RegisterType<IMyObject, MyStandardObject>();\nparentCtr.RegisterType<IMyOtherObject, MyOtherObject>();\n\n// Create nested child container in parent container\nIUnityContainer childCtr = parentCtr.CreateChildContainer();\n\n// Register mapping for specific type in child container\nchildCtr.RegisterType<IMyObject, MySpecialObject>();\n\n// Now retrieve instances of the mapped objects using the child container.\n// Using the interface as the type for the returned objects means that it\n// does not matter which container returns the actual object.\n\n// This code returns an object of type MySpecialObject using the mapping\n// registered in the child container:\nIMyObject specialObject = childCtr.Resolve<IMyObject>();\n\n// This code returns an object of type MyOtherObject using the mapping\n// registered in the parent container because there is no mapping in \n// the child container for this type:\nIMyOtherObject otherObject = childCtr.Resolve<IMyOtherObject>();\n\n// Now retrieve instance of the standard object using the parent container.\n// This code returns an object of type MyStandardObject using the mapping\n// registered in the parent container:\nIMyObject standardObject = parentCtr.Resolve<IMyObject>();\n\n// Dispose parent container and child container\nparentCtr.Dispose();\n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/16/2019","updated_at_date_time":"2019-03-16T20:42:53Z"},"_path":"tutorials/hierarchies/index.html","_tocRel":"../toc.json","canonical_url":"https:///en-us/tutorials/hierarchies/","conceptual":"\n

Unity container provides a way to create child containers (other systems refer to it as resolution scopes) and allows building sophisticated scope trees of registrations. There are just a few simple rules to follow when dealing with container hierarchies:

\n
    \n
  • Types registered in predecessor containers always available in descendant containers. This is a very simple concept, each registration is like a public virtual declaration in cs types. Every descendant inherits it and can use at will.

    \n
  • \n
  • Types registered in descendant containers override the same registration of predecessors. Following the same analogy with public virtual declarations, each override registration installs its own declaration and hides the one in predecessor containers.

    \n
  • \n
\n

Using Container Hierarchies

\n

Unity supports nested containers, allowing you to build container hierarchies. Nesting containers enables you to control the scope and lifetime of singleton objects, and register different mappings for specific types. This topic contains the following sections that describe how you can create container hierarchies and use them in your applications:

\n
    \n
  • Constructing and Disposing Unity Containers
  • \n
  • Controlling Object Scope and Lifetime
  • \n
  • Overriding registrations
  • \n
\n

Constructing and Disposing Unity Containers

\n

The following methods enable you to create a new default UnityContainer, create a child container that has a specified UnityContainer as its parent, and dispose an existing container.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MethodDescription
new UnityContainer()Creates a root UnityContainer. Returns a reference to the new container.
CreateChildContainer()Creates a new nested UnityContainer as a child of the current container. The current container first applies its own settings, and then it checks the parent for additional settings. Returns a reference to the new container.
Dispose()Disposes this container instance and any child containers. Also disposes any registered object instances whose lifetimes are managed by the container.
\n

Controlling Object Scope and Lifetime

\n

When the container creates singleton objects, it manages the lifetime of these singletons. They remain in scope until you (or the garbage collector) dispose the container. At this point, it disposes the registered singleton instances it contains. In addition, if you dispose the parent container in a nested container hierarchy, it automatically disposes all child containers and the registered singletons they contain.

\n

Therefore, if you require two separate sets of such objects that must have different lifetimes, you can use hierarchical containers to store and manage each set. Register instances that you want to be able to dispose separately in one or more child containers that you can dispose without disposing the parent container.

\n

The following code demonstrates the use of a child container to manage the lifetime of specific singleton instances while maintaining the singleton instances in the parent container.

\n
\n// Create parent container\nIUnityContainer parentCtr = new UnityContainer();\n\n// Register type in parent container\nparentCtr.RegisterType<MyParentObject>(TypeLifetime.PerContainer);\n\n// Create nested child container in parent container\nIUnityContainer childCtr = parentCtr.CreateChildContainer();\n\n// Register type in child container\nchildCtr.RegisterType<MyChildObject>(TypeLifetime.PerContainer);\n\n// Create instance of type stored in parent container\nMyParentObject parentObj = parentCtr.Resolve<MyParentObject>();\n\n// Create instance of type stored in child container\nMyChildObject childObj = childCtr.Resolve<MyChildObject>();\n\n// ... can use both generated objects here ...\n\n// Dispose child container\nchildCtr.Dispose();\n\n// ... can use only object in parent container here ...\n\n// Dispose parent container\nparentCtr.Dispose();\n
\n

Overriding registrations

\n

You can use nested containers when you have slightly different dependency injection requirements for specific objects but want to provide a fallback facility for objects that implement a specific interface or are of a specific type. For example, you may have a general requirement for objects that implement the IMyObject interface to map to the type MyStandardObject. However, in specific parts of the application code, you may want the IMyObject interface to map to the type MySpecialObject.

\n

In this case, you can register the general mapping in the parent container and register the specific case in a child container. Then, when you want to obtain an instance of the object, you call the Resolve method on the appropriate container. If you call the method on the child container, it returns an object of type MySpecialObject. If you call the method on the parent container, it returns an object of type MyStandardObject.

\n

However, the advantage with nested containers is that, if the child container cannot locate a mapping for the requested interface or type, it passes the request to its parent container and onward through the hierarchy until it reaches the root or base container. Therefore, for objects not mapped in the child container, the mapping in the parent container (or in an ancestor container where there are more than two levels in the hierarchy) defines the object type returned.

\n

The following code shows how you can implement the preceding scenario.

\n
// Create parent container\nIUnityContainer parentCtr = new UnityContainer();\n\n// Register two mappings for types in parent container\nparentCtr.RegisterType<IMyObject, MyStandardObject>();\nparentCtr.RegisterType<IMyOtherObject, MyOtherObject>();\n\n// Create nested child container in parent container\nIUnityContainer childCtr = parentCtr.CreateChildContainer();\n\n// Register mapping for specific type in child container\nchildCtr.RegisterType<IMyObject, MySpecialObject>();\n\n// Now retrieve instances of the mapped objects using the child container.\n// Using the interface as the type for the returned objects means that it\n// does not matter which container returns the actual object.\n\n// This code returns an object of type MySpecialObject using the mapping\n// registered in the child container:\nIMyObject specialObject = childCtr.Resolve<IMyObject>();\n\n// This code returns an object of type MyOtherObject using the mapping\n// registered in the parent container because there is no mapping in \n// the child container for this type:\nIMyOtherObject otherObject = childCtr.Resolve<IMyOtherObject>();\n\n// Now retrieve instance of the standard object using the parent container.\n// This code returns an object of type MyStandardObject using the mapping\n// registered in the parent container:\nIMyObject standardObject = parentCtr.Resolve<IMyObject>();\n\n// Dispose parent container and child container\nparentCtr.Dispose();\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/hierarchies.md","depot_name":".","document_id":"f2ce8356-f147-18ea-608e-d435aba30a24","document_version_independent_id":"3059ba46-3fde-dc5c-c040-4e7e672e2330","gitcommit":"https://github.com/unitycontainer/documentation/blob/8a5e5548aca3d3a178c32f6a6b4cc98de7f982a0/tutorials/hierarchies.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/hierarchies.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/hierarchies.md","rawTitle":"

Container Hierarchies

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Container Hierarchy","uid":"Tutorial.Container.Hierarchy","updated_at":"2019-03-16 08:42 PM","wordCount":935},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/container/index.html b/_site/tutorials/lifetime/container/index.html deleted file mode 100644 index dadbc9a..0000000 --- a/_site/tutorials/lifetime/container/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Per Container lifetime allows a registration of an existing or resolved object as a scoped singleton in the container it was created or registered. In other words this instance is unique within the container it war registered with. Child or parent containers could have their own instances registered for the same contract.

\n

Unity returns the same instance each time the Resolve method is called or when the dependency mechanism injects the instance into other classes.

\n

The Lifetime Manager

\n

Per container lifetime is controlled by ContainerControlledLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects registered with a particular container.

\n

Registration

\n

Per container lifetime is supported by all registration types

\n

Example

\n

To create a Type registration with per container lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerContainer);\n
\n

to register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerContainer);\n
\n

or to register an instance:

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.PerContainer);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime, FactoryLifetime, and InstanceLifetime respectively.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/23/2019","updated_at_date_time":"2019-03-23T02:03:25Z"},"_path":"tutorials/lifetime/container/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/container/","conceptual":"\n

Per Container lifetime allows a registration of an existing or resolved object as a scoped singleton in the container it was created or registered. In other words this instance is unique within the container it war registered with. Child or parent containers could have their own instances registered for the same contract.

\n

Unity returns the same instance each time the Resolve method is called or when the dependency mechanism injects the instance into other classes.

\n

The Lifetime Manager

\n

Per container lifetime is controlled by ContainerControlledLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects registered with a particular container.

\n

Registration

\n

Per container lifetime is supported by all registration types

\n

Example

\n

To create a Type registration with per container lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerContainer);\n
\n

to register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerContainer);\n
\n

or to register an instance:

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.PerContainer);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime, FactoryLifetime, and InstanceLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container.md","depot_name":".","document_id":"f944002f-f282-161d-59c3-dc0158b81c38","document_version_independent_id":"50f57fc6-d6aa-c252-3fee-3489768c2729","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/container.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/container.md","rawTitle":"

Per Container Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Per Container Lifetime","uid":"Tutorial.Lifetime.Container","updated_at":"2019-03-23 02:03 AM","wordCount":179},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/container_transient/index.html b/_site/tutorials/lifetime/container_transient/index.html deleted file mode 100644 index daa2fcb..0000000 --- a/_site/tutorials/lifetime/container_transient/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

This lifetime is similar to Transient Lifetime with exception how the container holds references to created objects.

\n

On each call to the Resolve<T>() method a container will create a new objects. If the objects implements IDisposable, the container will hold a reference to the interface and will dispose the object when the container goes out of scope.

\n

This lifetime is particularly useful in session based designs with child containers associated with the session.

\n

The Lifetime Manager

\n

Per container transient lifetime is controlled by ContainerControlledTransientManager type. This lifetime manager creates transient objects and holds reference to disposable instance and disposes these when container goes out of scope.

\n

Registration

\n

Per container transient lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per container transient lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerContainerTransient);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerContainerTransient);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/23/2019","updated_at_date_time":"2019-03-23T02:03:25Z"},"_path":"tutorials/lifetime/container_transient/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/container_transient/","conceptual":"\n

This lifetime is similar to Transient Lifetime with exception how the container holds references to created objects.

\n

On each call to the Resolve<T>() method a container will create a new objects. If the objects implements IDisposable, the container will hold a reference to the interface and will dispose the object when the container goes out of scope.

\n

This lifetime is particularly useful in session based designs with child containers associated with the session.

\n

The Lifetime Manager

\n

Per container transient lifetime is controlled by ContainerControlledTransientManager type. This lifetime manager creates transient objects and holds reference to disposable instance and disposes these when container goes out of scope.

\n

Registration

\n

Per container transient lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per container transient lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerContainerTransient);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerContainerTransient);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container_transient.md","depot_name":".","document_id":"29a2ea99-b616-e72c-4e44-348a0626f001","document_version_independent_id":"65e82dd5-d73d-c902-ecfd-b6d9899f7e36","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/container_transient.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/container_transient.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/container_transient.md","rawTitle":"

Container Transient Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Container Lifetime","uid":"Tutorial.Lifetime.Container.Transient","updated_at":"2019-03-23 02:03 AM","wordCount":184},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/disposal/index.html b/_site/tutorials/lifetime/disposal/index.html deleted file mode 100644 index 5871d62..0000000 --- a/_site/tutorials/lifetime/disposal/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"2/22/2019","updated_at_date_time":"2019-02-22T16:26:54Z"},"_path":"tutorials/lifetime/disposal/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/disposal/","conceptual":"","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/disposal.md","depot_name":".","document_id":"2b14df58-74ce-1a15-ad4b-1a2d4d6cbeef","document_version_independent_id":"c0f3331c-2ddb-e9d7-fca1-2b6545a81a01","gitcommit":"https://github.com/unitycontainer/documentation/blob/5540f1bb5b8cc106e4f2c8566afa78046a94691a/tutorials/lifetime/disposal.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/disposal.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/disposal.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","updated_at":"2019-02-22 04:26 PM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/external/index.html b/_site/tutorials/lifetime/external/index.html deleted file mode 100644 index 19cced3..0000000 --- a/_site/tutorials/lifetime/external/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

This lifetime allows you to register externally created objects with the container to enable them to participate in dependency injection process. Unity maintains only a weak reference to the instances it registers.

\n

Since the container does not maintain a strong reference to the object, the garbage collector can dispose of the objects if no other code is keeping it alive.

\n

The Lifetime Manager

\n

External lifetime is controlled by ExternallyControlledLifetimeManager type and provides basic support for externally managed objects.

\n

Registration

\n

External lifetime is only supported by Instance registrations.

\n

External lifetime is similar to Per Container Lifetime. It is held at the same container it is registered with and could be accessed and overridden in child container. Registrations with external lifetime override singletons with the same contract.

\n

Example

\n

To create a registration with external lifetime:

\n
var instance = new Service();\n...\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.External);\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/23/2019","updated_at_date_time":"2019-03-23T02:03:25Z"},"_path":"tutorials/lifetime/external/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/external/","conceptual":"\n

This lifetime allows you to register externally created objects with the container to enable them to participate in dependency injection process. Unity maintains only a weak reference to the instances it registers.

\n

Since the container does not maintain a strong reference to the object, the garbage collector can dispose of the objects if no other code is keeping it alive.

\n

The Lifetime Manager

\n

External lifetime is controlled by ExternallyControlledLifetimeManager type and provides basic support for externally managed objects.

\n

Registration

\n

External lifetime is only supported by Instance registrations.

\n

External lifetime is similar to Per Container Lifetime. It is held at the same container it is registered with and could be accessed and overridden in child container. Registrations with external lifetime override singletons with the same contract.

\n

Example

\n

To create a registration with external lifetime:

\n
var instance = new Service();\n...\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.External);\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/external.md","depot_name":".","document_id":"625147b9-ab0d-c4e5-a0f3-f578ab38848b","document_version_independent_id":"46cdda77-89a2-945f-304d-ee0461f7b5a5","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/external.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/external.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/external.md","rawTitle":"

External Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"External Lifetime","uid":"Tutorial.Lifetime.External","updated_at":"2019-03-23 02:03 AM","wordCount":162},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/hierarchical/index.html b/_site/tutorials/lifetime/hierarchical/index.html deleted file mode 100644 index aa30a01..0000000 --- a/_site/tutorials/lifetime/hierarchical/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

The Unity container allows creating hierarchies of child containers. This lifetime creates local singleton for each level of the hierarchy. So, when you resolve a type and this container does not have an instance of that type, the container will create new instance. Next time the type is resolved the same instance will be returned.

\n

If a child container is created and requested to resolve the type, the child container will create a new instance and store it for subsequent resolutions. Next time the child container requests to resolve the type, it will return the stored instance.

\n

If you have multiple children, each will resolve its own instance.

\n

The Lifetime Manager

\n

Hierarchical lifetime is controlled by HierarchicalLifetimeManager type. It forces each child container to resolve its own instance of the object and does not share one with the parent or child containers.

\n

Registration

\n

Hierarchical lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with hierarchical lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.Hierarchical);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.Hierarchical);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"8/27/2019","updated_at_date_time":"2019-08-27T20:54:29Z"},"_path":"tutorials/lifetime/hierarchical/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/hierarchical/","conceptual":"\n

The Unity container allows creating hierarchies of child containers. This lifetime creates local singleton for each level of the hierarchy. So, when you resolve a type and this container does not have an instance of that type, the container will create new instance. Next time the type is resolved the same instance will be returned.

\n

If a child container is created and requested to resolve the type, the child container will create a new instance and store it for subsequent resolutions. Next time the child container requests to resolve the type, it will return the stored instance.

\n

If you have multiple children, each will resolve its own instance.

\n

The Lifetime Manager

\n

Hierarchical lifetime is controlled by HierarchicalLifetimeManager type. It forces each child container to resolve its own instance of the object and does not share one with the parent or child containers.

\n

Registration

\n

Hierarchical lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with hierarchical lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.Hierarchical);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.Hierarchical);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/hierarchical.md","depot_name":".","document_id":"ed59d502-58d2-b13f-0561-833ca822dd15","document_version_independent_id":"4a92b4ec-c719-f2a6-f0dc-cf933cc22b5d","gitcommit":"https://github.com/unitycontainer/documentation/blob/3fb58b282a3dc13782e99f27f44902dcc5ab6051/tutorials/lifetime/hierarchical.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/hierarchical.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/hierarchical.md","rawTitle":"

Hierarchical Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Hierarchical Lifetime","uid":"Tutorial.Lifetime.Hierarchical","updated_at":"2019-08-27 08:54 PM","wordCount":216},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/lifetime/index.html b/_site/tutorials/lifetime/lifetime/index.html deleted file mode 100644 index c595669..0000000 --- a/_site/tutorials/lifetime/lifetime/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

The Unity container manages the lifetime of objects based on a Lifetime Manager you specify when you register the type.

\n

The default behavior for the container, if no lifetime is registered, to use a Transient Lifetime. It creates a new instance of the requested type each time Resolve method is called or when the dependency mechanism injects instances into other classes. The container does not store any references to the object.

\n

Unity uses specific types that inherit from the LifetimeManager base class (collectively referred to as lifetime managers) to control how it stores references to object instances and how the container disposes of these instances.

\n

When you register an existing object using the RegisterInstance method, the default behavior is for the container to take over management of the lifetime of the object you pass to this method using the Per Container Lifetime. This means that container maintains strong reference to the object and at the end of the container lifetime, the existing object is disposed.

\n

How registering lifetime works

\n

When type is registered with a lifetime manager, the creation and life cycle of the created instances is controlled according to that lifetime.

\n

When a container is requested to produce an instance of the type, it first checks if a lifetime manager is associated with it. If not, or if it is a transient manager, the container simply creates the instance and return it to the caller.

\n

If registration contains a lifetime manager, the container tries to get the value from that manager. If the manager has nothing stored in it, the container created an instance. But before it returns the instance to the caller it adds it to the lifetime manager for later use.

\n

Next time the type is requested, the container gets the value previously stored in the manager, if available, and returns it to the caller.

\n

Each lifetime manager has its own criteria how to store and retrieve object instances. Some only store unique instances in a container, others store unique instances per thread or session. Each algorithm serves particular purpose.

\n

Built-In Lifetimes

\n

The Unity container implements several lifetime managers that you can use directly in your code. The range covers most common use cases and scenarios. Unity includes the following lifetime implementations:

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/23/2019","updated_at_date_time":"2019-03-23T02:38:49Z"},"_path":"tutorials/lifetime/lifetime/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/lifetime/","conceptual":"\n

The Unity container manages the lifetime of objects based on a Lifetime Manager you specify when you register the type.

\n

The default behavior for the container, if no lifetime is registered, to use a Transient Lifetime. It creates a new instance of the requested type each time Resolve method is called or when the dependency mechanism injects instances into other classes. The container does not store any references to the object.

\n

Unity uses specific types that inherit from the LifetimeManager base class (collectively referred to as lifetime managers) to control how it stores references to object instances and how the container disposes of these instances.

\n

When you register an existing object using the RegisterInstance method, the default behavior is for the container to take over management of the lifetime of the object you pass to this method using the Per Container Lifetime. This means that container maintains strong reference to the object and at the end of the container lifetime, the existing object is disposed.

\n

How registering lifetime works

\n

When type is registered with a lifetime manager, the creation and life cycle of the created instances is controlled according to that lifetime.

\n

When a container is requested to produce an instance of the type, it first checks if a lifetime manager is associated with it. If not, or if it is a transient manager, the container simply creates the instance and return it to the caller.

\n

If registration contains a lifetime manager, the container tries to get the value from that manager. If the manager has nothing stored in it, the container created an instance. But before it returns the instance to the caller it adds it to the lifetime manager for later use.

\n

Next time the type is requested, the container gets the value previously stored in the manager, if available, and returns it to the caller.

\n

Each lifetime manager has its own criteria how to store and retrieve object instances. Some only store unique instances in a container, others store unique instances per thread or session. Each algorithm serves particular purpose.

\n

Built-In Lifetimes

\n

The Unity container implements several lifetime managers that you can use directly in your code. The range covers most common use cases and scenarios. Unity includes the following lifetime implementations:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/lifetime.md","depot_name":".","document_id":"5967a720-f54b-9740-a35b-9261249cd593","document_version_independent_id":"508ed49a-b285-2772-22f3-504f140d52cc","gitcommit":"https://github.com/unitycontainer/documentation/blob/c070d39a1c3e31474fffb345891d82d0095e5b2e/tutorials/lifetime/lifetime.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/lifetime.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/lifetime.md","rawTitle":"

Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Lifetime Management","uid":"Tutorial.Lifetime","updated_at":"2019-03-23 02:38 AM","wordCount":395},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/managers/index.html b/_site/tutorials/lifetime/managers/index.html deleted file mode 100644 index eec60f9..0000000 --- a/_site/tutorials/lifetime/managers/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/23/2019","updated_at_date_time":"2019-03-23T02:03:25Z"},"_path":"tutorials/lifetime/managers/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/managers/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/managers.md","depot_name":".","document_id":"f8559604-1b16-b232-33ff-2f49cb407425","document_version_independent_id":"bc1bd747-5468-e6d2-c466-1c22570f613b","gitcommit":"https://github.com/unitycontainer/documentation/blob/5697ec296ac4a4851377c765ddf766e982c4d649/tutorials/lifetime/managers.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/managers.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/managers.md","rawTitle":"","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Lifetime Managers","uid":"Tutorial.Lifetime.Managers","updated_at":"2019-03-23 02:03 AM","wordCount":20},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/resolve/index.html b/_site/tutorials/lifetime/resolve/index.html deleted file mode 100644 index 3b87913..0000000 --- a/_site/tutorials/lifetime/resolve/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

This lifetime keeps a reference to an instance only for the duration of one resolution call. This type of lifetime is useful when you need to pass the same instance of the dependency to a different nodes of the resolution graph. Consider this scenario:

\n
\nclass a {}\n\nclass b\n{\n    b(a arg)\n    {...}\n}\n\nclass c\n{\n    c(a arg1, b arg2)\n    {...}\n}\n\n
\n

When you resolve type c, it depends on type b and type a. Type b, in turn, also depends on type a, and both types, c and b, require a to be the same instance.

\n

If type a is a singleton, the logic is easy. But if you require each instance of c to have a unique a, you could use per resolve lifetime. The instance of a will act as a singleton only during that one resolution. Next call to resolve the dependent type will create a new object.

\n

In the case of recursion, the singleton behavior is still applies and prevents circular dependency.

\n

The Lifetime Manager

\n

Per resolve lifetime is controlled by PerResolveLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects on a per-resolve basis.

\n

Registration

\n

Per resolve lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per resolve lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerResolve);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerResolve);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/24/2019","updated_at_date_time":"2019-03-24T19:28:59Z"},"_path":"tutorials/lifetime/resolve/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/resolve/","conceptual":"\n

This lifetime keeps a reference to an instance only for the duration of one resolution call. This type of lifetime is useful when you need to pass the same instance of the dependency to a different nodes of the resolution graph. Consider this scenario:

\n
\nclass a {}\n\nclass b\n{\n    b(a arg)\n    {...}\n}\n\nclass c\n{\n    c(a arg1, b arg2)\n    {...}\n}\n\n
\n

When you resolve type c, it depends on type b and type a. Type b, in turn, also depends on type a, and both types, c and b, require a to be the same instance.

\n

If type a is a singleton, the logic is easy. But if you require each instance of c to have a unique a, you could use per resolve lifetime. The instance of a will act as a singleton only during that one resolution. Next call to resolve the dependent type will create a new object.

\n

In the case of recursion, the singleton behavior is still applies and prevents circular dependency.

\n

The Lifetime Manager

\n

Per resolve lifetime is controlled by PerResolveLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects on a per-resolve basis.

\n

Registration

\n

Per resolve lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per resolve lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerResolve);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerResolve);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/resolve.md","depot_name":".","document_id":"0d58f2b4-f70d-efe0-5963-be66ccaab8f2","document_version_independent_id":"a1db04ca-fb22-ecd3-2542-e1a1f9d0cc0b","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a3bce3e65127863d30af8960c9eb3393e9181c1/tutorials/lifetime/resolve.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/resolve.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/resolve.md","rawTitle":"

Per Resolve Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Per Resolve Lifetime","uid":"Tutorial.Lifetime.Resolve","updated_at":"2019-03-24 07:28 PM","wordCount":269},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/singleton/index.html b/_site/tutorials/lifetime/singleton/index.html deleted file mode 100644 index f1e85b8..0000000 --- a/_site/tutorials/lifetime/singleton/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Singleton lifetime creates globally unique singleton. Any Unity container tree (parent and all the children) is guaranteed to have only one global singleton for the registered type.

\n

The Lifetime Manager

\n

The singleton lifetime is controlled by SingletonLifetimeManager type.

\n

Registration

\n

Registering a type with singleton lifetime always places the registration at the root of the container tree and makes it globally available for all the children of that container. It does not matter if registration takes places at the root of child container the destination is always the root node.

\n

Repeating the registration on any of the child nodes with singleton lifetime will always override the root registration.

\n

Singleton lifetime is supported by all registration types.

\n

Example

\n

To create a Type registration with singleton lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.Singleton);\n
\n

to register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.Singleton);\n
\n

or to register an instance:

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.Singleton);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime, FactoryLifetime, and InstanceLifetime respectively.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/24/2019","updated_at_date_time":"2019-03-24T19:28:59Z"},"_path":"tutorials/lifetime/singleton/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/singleton/","conceptual":"\n

Singleton lifetime creates globally unique singleton. Any Unity container tree (parent and all the children) is guaranteed to have only one global singleton for the registered type.

\n

The Lifetime Manager

\n

The singleton lifetime is controlled by SingletonLifetimeManager type.

\n

Registration

\n

Registering a type with singleton lifetime always places the registration at the root of the container tree and makes it globally available for all the children of that container. It does not matter if registration takes places at the root of child container the destination is always the root node.

\n

Repeating the registration on any of the child nodes with singleton lifetime will always override the root registration.

\n

Singleton lifetime is supported by all registration types.

\n

Example

\n

To create a Type registration with singleton lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.Singleton);\n
\n

to register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.Singleton);\n
\n

or to register an instance:

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance, InstanceLifetime.Singleton);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime, FactoryLifetime, and InstanceLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/singleton.md","depot_name":".","document_id":"a3491109-364d-05db-d4a5-f61fc2ce069e","document_version_independent_id":"39b0fe65-5ec7-100d-e2a6-897d10093ccb","gitcommit":"https://github.com/unitycontainer/documentation/blob/6a3bce3e65127863d30af8960c9eb3393e9181c1/tutorials/lifetime/singleton.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/singleton.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/singleton.md","rawTitle":"

Singleton Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Singleton Lifetime","uid":"Tutorial.Lifetime.Singleton","updated_at":"2019-03-24 07:28 PM","wordCount":182},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/thread/index.html b/_site/tutorials/lifetime/thread/index.html deleted file mode 100644 index 440246c..0000000 --- a/_site/tutorials/lifetime/thread/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Per thread lifetime means a new instance of the registered Type will be created once per each thread. In other words, if a Resolve<T>() method is called on a thread the first time, it will return a new object. Each subsequent call to Resolve<T>(), or when the dependency mechanism injects instances of the type into other classes on the same thread, the container will return the same object.

\n

The Lifetime Manager

\n

Per thread lifetime is controlled by PerThreadLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects on a per-thread basis.

\n

Registration

\n

Per thread lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per thread lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerThread);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerThread);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/23/2019","updated_at_date_time":"2019-03-23T00:23:42Z"},"_path":"tutorials/lifetime/thread/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/thread/","conceptual":"\n

Per thread lifetime means a new instance of the registered Type will be created once per each thread. In other words, if a Resolve<T>() method is called on a thread the first time, it will return a new object. Each subsequent call to Resolve<T>(), or when the dependency mechanism injects instances of the type into other classes on the same thread, the container will return the same object.

\n

The Lifetime Manager

\n

Per thread lifetime is controlled by PerThreadLifetimeManager type. This lifetime manager effectively implements a singleton behavior for objects on a per-thread basis.

\n

Registration

\n

Per thread lifetime is only supported by Type and Factory registrations. Instance registration does not support this lifetime.

\n

Example

\n

To create a Type registration with per thread lifetime:

\n
container.RegisterType<IService, Service>(TypeLifetime.PerThread);\n
\n

or you could register a factory:

\n
container.RegisterFactory<IService>((c, t, n) => new Service(),\n                                    FactoryLifetime.PerThread);\n
\n
\n
NOTE
\n

Please note that registrations use TypeLifetime and FactoryLifetime respectively.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/thread.md","depot_name":".","document_id":"ab2df0fc-9e21-ded4-29f6-963493984600","document_version_independent_id":"572b5b1f-4bc4-bd1e-0e0a-4b89f5fe2529","gitcommit":"https://github.com/unitycontainer/documentation/blob/bb6dc876c93ae8f48e84e24ed81ea6122119f554/tutorials/lifetime/thread.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/thread.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/thread.md","rawTitle":"

Per Thread Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Per Thread Lifetime","uid":"Tutorial.Lifetime.Thread","updated_at":"2019-03-23 12:23 AM","wordCount":169},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/lifetime/transient/index.html b/_site/tutorials/lifetime/transient/index.html deleted file mode 100644 index 6e5daba..0000000 --- a/_site/tutorials/lifetime/transient/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Transient lifetime is a default lifetime of the Unity container. As the name implies it lasts very short period of time, actually, no time at all. In the Unity container terms, having transient lifetime is the same as having no lifetime manager at all.

\n

For this lifetime manager Unity creates and returns a new instance of the requested type for each call to the Resolve method.

\n

The Lifetime Manager

\n

The transient lifetime is controlled by TransientLifetimeManager. This lifetime manager is used by default for all types registered using the RegisterType method where no specific manager has been provided.

\n

Registration

\n

When registering a transient Type it is recommended to not pass an instance of TransientLifetimeManager to the registration, but allow Unity to create it explicitly.

\n

Example

\n
RegisterType<Foo>();\nRegisterType<IService, Service>();\n
\n

In this example a Type Foo and a mapping from IService to Service both registered with transient lifetime. So every call to Resolve<Foo>() or Resolve<IService>() will create a new object instance.

\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/22/2019","updated_at_date_time":"2019-03-22T23:43:39Z"},"_path":"tutorials/lifetime/transient/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/lifetime/transient/","conceptual":"\n

Transient lifetime is a default lifetime of the Unity container. As the name implies it lasts very short period of time, actually, no time at all. In the Unity container terms, having transient lifetime is the same as having no lifetime manager at all.

\n

For this lifetime manager Unity creates and returns a new instance of the requested type for each call to the Resolve method.

\n

The Lifetime Manager

\n

The transient lifetime is controlled by TransientLifetimeManager. This lifetime manager is used by default for all types registered using the RegisterType method where no specific manager has been provided.

\n

Registration

\n

When registering a transient Type it is recommended to not pass an instance of TransientLifetimeManager to the registration, but allow Unity to create it explicitly.

\n

Example

\n
RegisterType<Foo>();\nRegisterType<IService, Service>();\n
\n

In this example a Type Foo and a mapping from IService to Service both registered with transient lifetime. So every call to Resolve<Foo>() or Resolve<IService>() will create a new object instance.

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/transient.md","depot_name":".","document_id":"06238d76-3b70-618a-912e-a9c1962b98ac","document_version_independent_id":"f0f53112-6e30-292d-4b71-9573e0cded31","gitcommit":"https://github.com/unitycontainer/documentation/blob/c71e919e39ea3263b8425ee4c43a30d223d6f726/tutorials/lifetime/transient.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/lifetime/transient.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/lifetime/transient.md","rawTitle":"

Transient Lifetime

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Transient Lifetime","uid":"Tutorial.Lifetime.Transient","updated_at":"2019-03-22 11:43 PM","wordCount":181},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/factory/index.html b/_site/tutorials/registration/factory/index.html deleted file mode 100644 index 0a941ca..0000000 --- a/_site/tutorials/registration/factory/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/6/2019","updated_at_date_time":"2019-03-06T23:21:05Z"},"_path":"tutorials/registration/factory/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/registration/factory/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/factory.md","depot_name":".","document_id":"f0604d33-6d6b-f783-d6b5-11384867111b","document_version_independent_id":"2cdbbcb1-87c4-a276-7ac0-13258465cf06","gitcommit":"https://github.com/unitycontainer/documentation/blob/fcf3dc0a8e1438e5b0d980be1f7a8ea83ed2efdc/tutorials/registration/factory.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/factory.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/factory.md","rawTitle":"

Factory Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Factory Registration","uid":"Tutorial.Registration.Factory","updated_at":"2019-03-06 11:21 PM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/instance/index.html b/_site/tutorials/registration/instance/index.html deleted file mode 100644 index ce6e8b6..0000000 --- a/_site/tutorials/registration/instance/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Registering instances is useful if you already have an instance of an object that you have previously created and want Unity to manage its lifetime, or if you want Unity to inject that object into other objects that it is resolving.

\n

From container's point of view instance registration is in every way similar to type registration, except that it does not need to create the instance on the first Resolve request. It simply gets the object from lifetime manager and returns it as requested. The LifetimeManager controls the lifetime of the object and disposes it when appropriate.

\n

Registration of an Existing Object Instances

\n

The RegisterInstance method registers an existing instance with the container. You specify the instance type and optional lifetime in the parameter list. The container will return the specified existing instance for the duration of the specified lifetime. Unity container offers several overloads to simplify registration syntax. The simplest instance registration does not require any additional parameters other than instance itself:

\n
var instance = new Service();\n\ncontainer.RegisterInstance(instance);\n
\n

Resolving type Service like this container.Resolve<Service>() will return an instance of the Service object we registered.

\n

Metadata

\n

Instance registration, as any other registration type, supports adding a registration Name. Doing so lets you register multiple instance of the same Type for later retrieval as a collection. Using overload you can write it like this:

\n
container.RegisterInstance("Some Name", instance);\n
\n

Type mapping

\n

Any instance can also be registered as any of the ancestral types or any of the interfaces it implements effectively creating a mapping between these types.

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance);\ncontainer.RegisterInstance<IService>("Some Name", instance);\nor\ncontainer.RegisterInstance(typeof(IService), instance)\ncontainer.RegisterInstance(typeof(IService), "xyz", instance)\n
\n

In this example Unity creates two registrations of type IService. When either is resolved it returns the instance of the Service object we registered with container. For more information see Type Mapping

\n

Lifetime

\n

Due to the fact that container does not create these instances, the instance registration only supports limited number of compatible lifetimes:

\n

Per Container

\n

By default Unity uses Per Container lifetime manager when no manager specified explicitly. So all these examples above will be registered with container scope. Unity will keep these instances referenced and alive until the container is alive. Although it is not necessary to provide container controlled lifetime manager you can still write it like this:

\n
container.RegisterInstance("Some Name", instance, InstanceLifetime.PerContainer);\ncontainer.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.PerContainer);\n
\n

Singleton

\n

Instances can be registered as global singletons by using Singleton lifetime manager:

\n
container.RegisterInstance("Some Name", instance, InstanceLifetime.Singleton);\ncontainer.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.Singleton);\n
\n

These instances will be kept alive until root container is disposed.

\n

External

\n

If Unity is not supposed to control lifetime of the object the External lifetime manager is used:

\n
container.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.External);\n
\n

External lifetime manager is also useful when same instance is registered via multiple interfaces. In this case only one registration should use Per Container or Singleton manager and the rest should be registered with External lifetime manager. This way, when object is disposed, it is not disposed multiple times:

\n
container.RegisterInstance(instance, InstanceLifetime.Singleton);\n\ncontainer.RegisterInstance<IService>(        instance, InstanceLifetime.External);\ncontainer.RegisterInstance<IService>("Name", instance, InstanceLifetime.External);\n
\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/7/2019","updated_at_date_time":"2019-03-07T05:22:51Z"},"_path":"tutorials/registration/instance/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/registration/instance/","conceptual":"\n

Registering instances is useful if you already have an instance of an object that you have previously created and want Unity to manage its lifetime, or if you want Unity to inject that object into other objects that it is resolving.

\n

From container's point of view instance registration is in every way similar to type registration, except that it does not need to create the instance on the first Resolve request. It simply gets the object from lifetime manager and returns it as requested. The LifetimeManager controls the lifetime of the object and disposes it when appropriate.

\n

Registration of an Existing Object Instances

\n

The RegisterInstance method registers an existing instance with the container. You specify the instance type and optional lifetime in the parameter list. The container will return the specified existing instance for the duration of the specified lifetime. Unity container offers several overloads to simplify registration syntax. The simplest instance registration does not require any additional parameters other than instance itself:

\n
var instance = new Service();\n\ncontainer.RegisterInstance(instance);\n
\n

Resolving type Service like this container.Resolve<Service>() will return an instance of the Service object we registered.

\n

Metadata

\n

Instance registration, as any other registration type, supports adding a registration Name. Doing so lets you register multiple instance of the same Type for later retrieval as a collection. Using overload you can write it like this:

\n
container.RegisterInstance("Some Name", instance);\n
\n

Type mapping

\n

Any instance can also be registered as any of the ancestral types or any of the interfaces it implements effectively creating a mapping between these types.

\n
var instance = new Service();\n\ncontainer.RegisterInstance<IService>(instance);\ncontainer.RegisterInstance<IService>("Some Name", instance);\nor\ncontainer.RegisterInstance(typeof(IService), instance)\ncontainer.RegisterInstance(typeof(IService), "xyz", instance)\n
\n

In this example Unity creates two registrations of type IService. When either is resolved it returns the instance of the Service object we registered with container. For more information see Type Mapping

\n

Lifetime

\n

Due to the fact that container does not create these instances, the instance registration only supports limited number of compatible lifetimes:

\n

Per Container

\n

By default Unity uses Per Container lifetime manager when no manager specified explicitly. So all these examples above will be registered with container scope. Unity will keep these instances referenced and alive until the container is alive. Although it is not necessary to provide container controlled lifetime manager you can still write it like this:

\n
container.RegisterInstance("Some Name", instance, InstanceLifetime.PerContainer);\ncontainer.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.PerContainer);\n
\n

Singleton

\n

Instances can be registered as global singletons by using Singleton lifetime manager:

\n
container.RegisterInstance("Some Name", instance, InstanceLifetime.Singleton);\ncontainer.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.Singleton);\n
\n

These instances will be kept alive until root container is disposed.

\n

External

\n

If Unity is not supposed to control lifetime of the object the External lifetime manager is used:

\n
container.RegisterInstance<IService>("Some Name", instance, InstanceLifetime.External);\n
\n

External lifetime manager is also useful when same instance is registered via multiple interfaces. In this case only one registration should use Per Container or Singleton manager and the rest should be registered with External lifetime manager. This way, when object is disposed, it is not disposed multiple times:

\n
container.RegisterInstance(instance, InstanceLifetime.Singleton);\n\ncontainer.RegisterInstance<IService>(        instance, InstanceLifetime.External);\ncontainer.RegisterInstance<IService>("Name", instance, InstanceLifetime.External);\n
\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/instance.md","depot_name":".","document_id":"2db4d9db-4837-9463-3cc7-45a8a5227018","document_version_independent_id":"9ecb4aa2-4bbf-0201-0504-07b44db0e1ce","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/instance.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/instance.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/instance.md","rawTitle":"

Instance Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Instance Registration","uid":"Tutorial.Registration.Instance","updated_at":"2019-03-07 05:22 AM","wordCount":499},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/metadata/index.html b/_site/tutorials/registration/metadata/index.html deleted file mode 100644 index 309376f..0000000 --- a/_site/tutorials/registration/metadata/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

During registration Unity relies on information you provide to properly register types, instances, and factories. This is a description of metadata you could provide to properly declare how the Type should be registered and built:

\n

Registered Type

\n

A Type that will be requested during resolution is called Registered Type. In the example below SomeType would be a registered type.

\n
container.RegisterType<SomeType>();\n...\nvar value = container.Resolve<SomeType>();\n
\n

Different container authors call this type by different names, FromType, ServiceType, etc. The key point to remember is that this is the Type container will be referencing in the internal registry and will be looking for when executing the resolve.

\n

Name

\n

Each registration must be unique within the scope on a container it is registered with. A registration is identified by two pieces of information: Registered Type and Name.\nAdding the name to registration allows multiple 'instances' of the same type to be registered with the container.

\n

For example, if you register the same service with no name multiple times, each subsequent registration will override the last because in each case you are registering the same type IService with the same name null:

\n
container.RegisterType<IService, Service1>();\ncontainer.RegisterType<IService, Service2>();\ncontainer.RegisterType<IService, Service3>();\n\nvar enumeration = container.Resolve<IEnumerable<IService>>();\nvar count = enumeration.Count();\n
\n

The value of variable count will be 1.

\n

Adding unique names to registrations makes each unique:

\n
container.RegisterType<IService, Service1>("1");\ncontainer.RegisterType<IService, Service2>("2");\ncontainer.RegisterType<IService, Service3>("3");\n\nvar enumeration = container.Resolve<IEnumerable<IService>>();\nvar count = enumeration.Count();\n
\n

In this example the value of variable count will be 3.

\n

Mapped To Type

\n

Sometimes it is also called ToType, ImplementationType, and etc. It describes the type Unity should use to create the instance. Mapped To Type must be descendant of, or it should implement the Registered Type. In other words, it must be assignable to a variable of Registered Type.

\n

This registration member creates a mapping between service and implementation types. In the following example IService is mapped to Service and when Unity container is asked to resolve IService it will, in turn, create an instance of type Service and return it as interface IService.

\n
container.RegisterType<IService, Service>();\n\nvar result = container.Resolve<IService>();\n\nAssert(typeof(Service) == result.GetType())\n
\n

For more information see Type Mapping.

\n

Lifetime Manager

\n

This member holds a reference to a lifetime manager that Unity will be using to manage instance(s) of this type. For more information see Lifetime Management.

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"5/15/2019","updated_at_date_time":"2019-05-15T18:34:23Z"},"_path":"tutorials/registration/metadata/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/registration/metadata/","conceptual":"\n

During registration Unity relies on information you provide to properly register types, instances, and factories. This is a description of metadata you could provide to properly declare how the Type should be registered and built:

\n

Registered Type

\n

A Type that will be requested during resolution is called Registered Type. In the example below SomeType would be a registered type.

\n
container.RegisterType<SomeType>();\n...\nvar value = container.Resolve<SomeType>();\n
\n

Different container authors call this type by different names, FromType, ServiceType, etc. The key point to remember is that this is the Type container will be referencing in the internal registry and will be looking for when executing the resolve.

\n

Name

\n

Each registration must be unique within the scope on a container it is registered with. A registration is identified by two pieces of information: Registered Type and Name.\nAdding the name to registration allows multiple 'instances' of the same type to be registered with the container.

\n

For example, if you register the same service with no name multiple times, each subsequent registration will override the last because in each case you are registering the same type IService with the same name null:

\n
container.RegisterType<IService, Service1>();\ncontainer.RegisterType<IService, Service2>();\ncontainer.RegisterType<IService, Service3>();\n\nvar enumeration = container.Resolve<IEnumerable<IService>>();\nvar count = enumeration.Count();\n
\n

The value of variable count will be 1.

\n

Adding unique names to registrations makes each unique:

\n
container.RegisterType<IService, Service1>("1");\ncontainer.RegisterType<IService, Service2>("2");\ncontainer.RegisterType<IService, Service3>("3");\n\nvar enumeration = container.Resolve<IEnumerable<IService>>();\nvar count = enumeration.Count();\n
\n

In this example the value of variable count will be 3.

\n

Mapped To Type

\n

Sometimes it is also called ToType, ImplementationType, and etc. It describes the type Unity should use to create the instance. Mapped To Type must be descendant of, or it should implement the Registered Type. In other words, it must be assignable to a variable of Registered Type.

\n

This registration member creates a mapping between service and implementation types. In the following example IService is mapped to Service and when Unity container is asked to resolve IService it will, in turn, create an instance of type Service and return it as interface IService.

\n
container.RegisterType<IService, Service>();\n\nvar result = container.Resolve<IService>();\n\nAssert(typeof(Service) == result.GetType())\n
\n

For more information see Type Mapping.

\n

Lifetime Manager

\n

This member holds a reference to a lifetime manager that Unity will be using to manage instance(s) of this type. For more information see Lifetime Management.

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/metadata.md","depot_name":".","document_id":"fc6c3f44-66b3-f55d-334e-840d9ac78cb1","document_version_independent_id":"f13bf8e3-6b83-d673-6b1f-cc55aa6cff6a","gitcommit":"https://github.com/unitycontainer/documentation/blob/2a5f6d8a2ee72d62253de6ab40494c4d39e00011/tutorials/registration/metadata.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/metadata.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/metadata.md","rawTitle":"

Registration Metadata

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Registration Metadata","uid":"Tutorial.Registration.Metadata","updated_at":"2019-05-15 06:34 PM","wordCount":380},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/registration/index.html b/_site/tutorials/registration/registration/index.html deleted file mode 100644 index cfaf98d..0000000 --- a/_site/tutorials/registration/registration/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Unity does not require Type to be registered to resolve it.

\n

Any concrete, constructable Type could be resolved by Unity without any prior preparation. It will even create and supply parameters if required. In other words, if you can create a Type with new operator:

\n
var value = new SomeClass(new SomeOtherClass());\n
\n

you can resolve it from Unity:

\n
var value = container.Resolve<SomeClass>();\n
\n

Minimum Registration Requirements

\n

A lot of times, if type does not require any custom steps, it is faster to resolve Type from the container if it is not registered. You should only register a Type if one of the following is required:

\n
    \n
  • Lifetime policy other than transient
  • \n
  • Nondefault constructor should be selected
  • \n
  • Properties or fields not marked with appropriate attributes should be injected
  • \n
  • Method should be called during initialization on the created object
  • \n
  • Mapping between service and implementation types
  • \n
\n

What is a Registration and how it works

\n

Registration is how you control Unity to do it 'Your' way. When you register a Type, you are instructing Unity to create and initialize an instance of that Type in a very particular way. You also instruct Unity how to deal with the crated instance during its lifetime.

\n

Once registration is complete, Unity creates a blueprint of the type factory where it stores implementation details (name, to and from types, etc.), information about what members to inject and how, and lifetime manager responsible for managing the instance.\nAt the later time, when that Type is requested, Unity uses this blueprint to create a pipeline (resolver delegate) to be used to create type.

\n

Each Unity container exposes a collection of available registrations presented as an enumeration of IContainerRegistration objects. This collection could be used to filter and select certain registrations as well as to check if the Type is registered and how.

\n

Different types of registrations

\n

Unity recognizes three different scenarios of how instances and types are created and based on these allows three different types of registrations:

\n

Instances created outside of Unity

\n

A lot of times parts of system's infrastructure require to be available to clients and services of the application. These entities are created and managed outside of the Unity but should be accessible by consumers of the framework during resolution. To enable access to these objects Unity provides a way to register instances. For more information see Instance Registration.

\n

Instances created by Unity using provided Type Factory

\n

Although Unity is quite capable in creating instances of types, sometimes it is more efficient or desireable to use Type factories. Unity provides API to register a special factory delegate. For more information see Factory Registration

\n

Instances created by Unity

\n

This is the most common scenario where objects are created by the container itself. Creation process is controlled by either Type registrations associated with the container or implicit Unity defaults if none registered. For more information how Type can be registered seeType Registration

\n

Container Hierarchies

\n

Unity container provides a way to create child containers (also referred as creating scopes) and allows building sophisticated hierarchical trees of registrations. There are just a few simple rules to follow when dealing with container hierarchies. For more information see Container Hierarchy

\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/11/2019","updated_at_date_time":"2019-03-11T00:32:39Z"},"_path":"tutorials/registration/registration/index.html","_tocRel":"../../toc.json","canonical_url":"https:///en-us/tutorials/registration/registration/","conceptual":"\n

Unity does not require Type to be registered to resolve it.

\n

Any concrete, constructable Type could be resolved by Unity without any prior preparation. It will even create and supply parameters if required. In other words, if you can create a Type with new operator:

\n
var value = new SomeClass(new SomeOtherClass());\n
\n

you can resolve it from Unity:

\n
var value = container.Resolve<SomeClass>();\n
\n

Minimum Registration Requirements

\n

A lot of times, if type does not require any custom steps, it is faster to resolve Type from the container if it is not registered. You should only register a Type if one of the following is required:

\n
    \n
  • Lifetime policy other than transient
  • \n
  • Nondefault constructor should be selected
  • \n
  • Properties or fields not marked with appropriate attributes should be injected
  • \n
  • Method should be called during initialization on the created object
  • \n
  • Mapping between service and implementation types
  • \n
\n

What is a Registration and how it works

\n

Registration is how you control Unity to do it 'Your' way. When you register a Type, you are instructing Unity to create and initialize an instance of that Type in a very particular way. You also instruct Unity how to deal with the crated instance during its lifetime.

\n

Once registration is complete, Unity creates a blueprint of the type factory where it stores implementation details (name, to and from types, etc.), information about what members to inject and how, and lifetime manager responsible for managing the instance.\nAt the later time, when that Type is requested, Unity uses this blueprint to create a pipeline (resolver delegate) to be used to create type.

\n

Each Unity container exposes a collection of available registrations presented as an enumeration of IContainerRegistration objects. This collection could be used to filter and select certain registrations as well as to check if the Type is registered and how.

\n

Different types of registrations

\n

Unity recognizes three different scenarios of how instances and types are created and based on these allows three different types of registrations:

\n

Instances created outside of Unity

\n

A lot of times parts of system's infrastructure require to be available to clients and services of the application. These entities are created and managed outside of the Unity but should be accessible by consumers of the framework during resolution. To enable access to these objects Unity provides a way to register instances. For more information see Instance Registration.

\n

Instances created by Unity using provided Type Factory

\n

Although Unity is quite capable in creating instances of types, sometimes it is more efficient or desireable to use Type factories. Unity provides API to register a special factory delegate. For more information see Factory Registration

\n

Instances created by Unity

\n

This is the most common scenario where objects are created by the container itself. Creation process is controlled by either Type registrations associated with the container or implicit Unity defaults if none registered. For more information how Type can be registered seeType Registration

\n

Container Hierarchies

\n

Unity container provides a way to create child containers (also referred as creating scopes) and allows building sophisticated hierarchical trees of registrations. There are just a few simple rules to follow when dealing with container hierarchies. For more information see Container Hierarchy

\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/registration.md","depot_name":".","document_id":"155f0237-7c9a-c764-d36c-ce050328f35d","document_version_independent_id":"9690b687-88ba-a4a2-ef60-1c2cf2353e9f","gitcommit":"https://github.com/unitycontainer/documentation/blob/a17b17619ae5cf4fc682ced9bb9eddc392311e26/tutorials/registration/registration.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/registration.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/registration.md","rawTitle":"

Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Registration","uid":"Tutorial.Registration","updated_at":"2019-03-11 12:32 AM","wordCount":525},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/constructor/annotation/index.html b/_site/tutorials/registration/type/constructor/annotation/index.html deleted file mode 100644 index fdb7ba1..0000000 --- a/_site/tutorials/registration/type/constructor/annotation/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

To select constructors you create through the Unity container, you can use the following three techniques:

\n\n

Annotated Constructor Injection

\n

Constructor Injection with Attribute Annotation allows you to apply attributes to the class' constructor designating it for dependency injection. When creating the class, Unity will always (unless explicitly overwritten in Registration) use that constructor. You only need to use this technique when there is more than one constructor in the target type.

\n

Annotating a Constructor

\n

When a target class contains more than one constructor and the automatic algorithm does not provide desired selection, you may use the InjectionConstructor attribute to specify the constructor you wish to use for injection.

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this example type Service contains four public constructors. Three of these constructors have one parameter each. A Type like this creates an ambiguity that Unity could not resolve by itself.

\n
\n
WARNING
\n

During resolution, the container will pick the first constructor it could satisfy with dependencies and will use it. In the example above, it could be any of the three constructors with one parameter.

\n
\n

The container is not trying to validate all available contractors during normal execution.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructors.

\n
\n

Normally, Unity would select the third constructor with three parameters, but by annotating the second constructor with the attribute you force Unity to use it during resolution.

\n

Multiple Constructor Annotations

\n

Annotating multiple constructors with injection parameters is not recommended. Unity is not guaranteed to process constructors in certain order. If multiple constructors are annotated, behavior might change from version to version.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructor annotations.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/10/2019","updated_at_date_time":"2019-03-10T20:00:03Z"},"_path":"tutorials/registration/type/constructor/annotation/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/constructor/annotation/","conceptual":"\n

To select constructors you create through the Unity container, you can use the following three techniques:

\n\n

Annotated Constructor Injection

\n

Constructor Injection with Attribute Annotation allows you to apply attributes to the class' constructor designating it for dependency injection. When creating the class, Unity will always (unless explicitly overwritten in Registration) use that constructor. You only need to use this technique when there is more than one constructor in the target type.

\n

Annotating a Constructor

\n

When a target class contains more than one constructor and the automatic algorithm does not provide desired selection, you may use the InjectionConstructor attribute to specify the constructor you wish to use for injection.

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this example type Service contains four public constructors. Three of these constructors have one parameter each. A Type like this creates an ambiguity that Unity could not resolve by itself.

\n
\n
WARNING
\n

During resolution, the container will pick the first constructor it could satisfy with dependencies and will use it. In the example above, it could be any of the three constructors with one parameter.

\n
\n

The container is not trying to validate all available contractors during normal execution.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructors.

\n
\n

Normally, Unity would select the third constructor with three parameters, but by annotating the second constructor with the attribute you force Unity to use it during resolution.

\n

Multiple Constructor Annotations

\n

Annotating multiple constructors with injection parameters is not recommended. Unity is not guaranteed to process constructors in certain order. If multiple constructors are annotated, behavior might change from version to version.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will throw an exception reporting ambiguous constructor annotations.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/annotation.md","depot_name":".","document_id":"bccfb7ef-9055-d8bb-1199-c150fefc32b1","document_version_independent_id":"ab8a87e3-5b14-9e99-2f2a-60bdaac3187d","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/annotation.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/annotation.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/annotation.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor By Attribute Annotation","uid":"Tutorial.Injection.Constructor.Annotation","updated_at":"2019-03-10 08:00 PM","wordCount":409},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/constructor/automatic/index.html b/_site/tutorials/registration/type/constructor/automatic/index.html deleted file mode 100644 index df383c1..0000000 --- a/_site/tutorials/registration/type/constructor/automatic/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Proper selection of the constructor used for type instantiation is one of the most important aspects of the container operation. When creating an object, the container uses one of the following algorithms to select a constructor it will be using to initialize the object:

\n\n

Automatic Constructor Selection

\n

Automatic constructor selection is performed if no other information is available on how to create a Type. Unity uses dynamic, real time algorithm to discover and select a constructor.

\n

The Unity container will try to execute the most complex constructor it can provide with appropriate dependencies. In other words, if the container can resolve and/or inject all parameters of the constructor, it will be selected.

\n

Creating Build Pipeline

\n

Selection process takes place during the first resolution of a Type contract. Unity container employs lazy resolution strategy. It will defer pipeline creation until the contract (RegistrationType and Name) is requested.

\n

The lazy approach allows registrations to proceed at random order and do not require dependencies to be registered before dependents. As long as all of these are available at the time of resolution Unity does not care in what order they were registered.

\n

Constructor Selection Steps

\n

One of the first steps, when creating a pipeline, is a constructor selection. Constructors are selected in the following order:

\n
    \n
  • If present, use registered Injection Constructor
  • \n
  • If present, annotated with an attribute
  • \n
  • Automatically select constructor\n
      \n
    • Get all accessible constructors
    • \n
    • Process constructors in ascending order from most complex to the default\n
        \n
      • Filter out restricted constructors
      • \n
      • Loop through parameters and check if\n
          \n
        • Is primitive\n
            \n
          • Is registered with the container
          • \n
          • Has default value
          • \n
          \n
        • \n
        • Is resolvable type
        • \n
        • Is registered with container
        • \n
        \n
      • \n
      • Select the first constructor the container can create
      • \n
      \n
    • \n
    \n
  • \n
\n

The Unity container will select the first successful match and use it as a selection.

\n
\n
WARNING
\n

When more than one constructor could be matched at the same time, the order and constructor selection can not be guaranteed.

\n
\n

During normal operation the container does not perform validation.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will perform a selection validation and will throw an exception, reporting ambiguous constructors, if more than one constructor can be successfully selected with current configuration.

\n
\n

If no constructor could be selected, the container will throw an exception.

\n

Pipeline retention

\n

Once the pipeline is created, it will be used to satisfy all subsequent requests for that contract. If you need to update or rebuild the pipeline, the contract has to be re-registered.

\n\n

See Also:

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/30/2019","updated_at_date_time":"2019-04-30T00:00:11Z"},"_path":"tutorials/registration/type/constructor/automatic/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/constructor/automatic/","conceptual":"\n

Proper selection of the constructor used for type instantiation is one of the most important aspects of the container operation. When creating an object, the container uses one of the following algorithms to select a constructor it will be using to initialize the object:

\n\n

Automatic Constructor Selection

\n

Automatic constructor selection is performed if no other information is available on how to create a Type. Unity uses dynamic, real time algorithm to discover and select a constructor.

\n

The Unity container will try to execute the most complex constructor it can provide with appropriate dependencies. In other words, if the container can resolve and/or inject all parameters of the constructor, it will be selected.

\n

Creating Build Pipeline

\n

Selection process takes place during the first resolution of a Type contract. Unity container employs lazy resolution strategy. It will defer pipeline creation until the contract (RegistrationType and Name) is requested.

\n

The lazy approach allows registrations to proceed at random order and do not require dependencies to be registered before dependents. As long as all of these are available at the time of resolution Unity does not care in what order they were registered.

\n

Constructor Selection Steps

\n

One of the first steps, when creating a pipeline, is a constructor selection. Constructors are selected in the following order:

\n
    \n
  • If present, use registered Injection Constructor
  • \n
  • If present, annotated with an attribute
  • \n
  • Automatically select constructor\n
      \n
    • Get all accessible constructors
    • \n
    • Process constructors in ascending order from most complex to the default\n
        \n
      • Filter out restricted constructors
      • \n
      • Loop through parameters and check if\n
          \n
        • Is primitive\n
            \n
          • Is registered with the container
          • \n
          • Has default value
          • \n
          \n
        • \n
        • Is resolvable type
        • \n
        • Is registered with container
        • \n
        \n
      • \n
      • Select the first constructor the container can create
      • \n
      \n
    • \n
    \n
  • \n
\n

The Unity container will select the first successful match and use it as a selection.

\n
\n
WARNING
\n

When more than one constructor could be matched at the same time, the order and constructor selection can not be guaranteed.

\n
\n

During normal operation the container does not perform validation.

\n
\n
NOTE
\n

If Diagnostic extension is enabled, Unity will perform a selection validation and will throw an exception, reporting ambiguous constructors, if more than one constructor can be successfully selected with current configuration.

\n
\n

If no constructor could be selected, the container will throw an exception.

\n

Pipeline retention

\n

Once the pipeline is created, it will be used to satisfy all subsequent requests for that contract. If you need to update or rebuild the pipeline, the contract has to be re-registered.

\n\n

See Also:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/automatic.md","depot_name":".","document_id":"c1e7c148-cf93-2de0-cc54-32701d701632","document_version_independent_id":"eca76e28-a114-ec13-d320-563b416d21f4","gitcommit":"https://github.com/unitycontainer/documentation/blob/704b5031aaedb4ba2af139c76a605c3c9b409600/tutorials/registration/Type/Constructor/automatic.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/automatic.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/automatic.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Automatic Constructor Injection","uid":"Tutorial.Injection.Constructor.Implicit","updated_at":"2019-04-30 12:00 AM","wordCount":513},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/constructor/constructor/index.html b/_site/tutorials/registration/type/constructor/constructor/index.html deleted file mode 100644 index 71c055f..0000000 --- a/_site/tutorials/registration/type/constructor/constructor/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Constructor Injection is a process where Unity selects a constructor, resolves parameter dependencies, and executes the constructor by injecting it with resolved or injected dependencies.

\n

Restrictions

\n

Unity can be configured to execute any accessible constructor with the following exceptions:

\n
    \n
  • static constructors are not supported
  • \n
  • private and protected constructors are not accessible
  • \n
  • Constructors with ref and out parameters are not supported
  • \n
\n

Selection Methods

\n

Selecting a constructor is one of the first steps in creating a resolution pipeline. Unity supports the following selection methods:

\n

Automatic Selection

\n

Automatic Selection is a default method of selecting constructors. It will be used if no constructor is injected or annotated.

\n

By default Unity uses 'smart' algorithm to select constructor. It sorts all accessible constructors by number of parameters in ascending order and goes from most complex to the default, checking if it can satisfy its parameters. The container selects the first constructor it can create and executes it.

\n
\n
WARNING
\n

Unity will not check for ambiguities unless Diagnostic extension is installed.

\n
\n
\n
TIP
\n

Legacy selection algorithm which selects the most complex constructor could be enabled by installing Legacy extension. It will replace and disable 'smart' selection.

\n
\n

Constructor Annotation

\n

Constructor annotated with InjectionConstructor attribute overrides automatic selection. For more information see Annotating Type for Constructor Injection

\n

Constructor injection

\n

Constructor configuration registered for the Type has highest priority. It will override other selection methods and will always execute the configured constructor.

\n

As opposed to methods, constructors do not have a name to distinguish one from the other. The only difference between constructors is number and Type of parameters they take. Because of that constructor selection is based solely on parameters and its types.

\n

Invoking the Constructor

\n

Invoked constructor and injection of its parameters is configured by registering the Type with the InjectionConstructor. Creating the InjectionConstructor with proper injection members or values determines what constructor is selected and how parameters are initialized. Values and resolvers added to InjectionConstructor will be used to initialize parameters of the constructor of the Type. The following aspects could be configured:

\n
    \n
  • Parameter Type
  • \n
  • Force resolution of parameter
  • \n
  • Specify the Contract/Registration Name to by used when resolving
  • \n
  • Provide a Resolver for the parameter
  • \n
  • Provide value
  • \n
\n
\n
TIP
\n

As alternative, helper Invoke.Constructor(...) can be used to configure invoked constructor.

\n
\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/registration/type/constructor/constructor/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/constructor/constructor/","conceptual":"\n

Constructor Injection is a process where Unity selects a constructor, resolves parameter dependencies, and executes the constructor by injecting it with resolved or injected dependencies.

\n

Restrictions

\n

Unity can be configured to execute any accessible constructor with the following exceptions:

\n
    \n
  • static constructors are not supported
  • \n
  • private and protected constructors are not accessible
  • \n
  • Constructors with ref and out parameters are not supported
  • \n
\n

Selection Methods

\n

Selecting a constructor is one of the first steps in creating a resolution pipeline. Unity supports the following selection methods:

\n

Automatic Selection

\n

Automatic Selection is a default method of selecting constructors. It will be used if no constructor is injected or annotated.

\n

By default Unity uses 'smart' algorithm to select constructor. It sorts all accessible constructors by number of parameters in ascending order and goes from most complex to the default, checking if it can satisfy its parameters. The container selects the first constructor it can create and executes it.

\n
\n
WARNING
\n

Unity will not check for ambiguities unless Diagnostic extension is installed.

\n
\n
\n
TIP
\n

Legacy selection algorithm which selects the most complex constructor could be enabled by installing Legacy extension. It will replace and disable 'smart' selection.

\n
\n

Constructor Annotation

\n

Constructor annotated with InjectionConstructor attribute overrides automatic selection. For more information see Annotating Type for Constructor Injection

\n

Constructor injection

\n

Constructor configuration registered for the Type has highest priority. It will override other selection methods and will always execute the configured constructor.

\n

As opposed to methods, constructors do not have a name to distinguish one from the other. The only difference between constructors is number and Type of parameters they take. Because of that constructor selection is based solely on parameters and its types.

\n

Invoking the Constructor

\n

Invoked constructor and injection of its parameters is configured by registering the Type with the InjectionConstructor. Creating the InjectionConstructor with proper injection members or values determines what constructor is selected and how parameters are initialized. Values and resolvers added to InjectionConstructor will be used to initialize parameters of the constructor of the Type. The following aspects could be configured:

\n
    \n
  • Parameter Type
  • \n
  • Force resolution of parameter
  • \n
  • Specify the Contract/Registration Name to by used when resolving
  • \n
  • Provide a Resolver for the parameter
  • \n
  • Provide value
  • \n
\n
\n
TIP
\n

As alternative, helper Invoke.Constructor(...) can be used to configure invoked constructor.

\n
\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/constructor.md","depot_name":".","document_id":"3d0b4d82-1433-301e-4a5a-ca84297b7a66","document_version_independent_id":"2187b1df-e919-dcb8-3c5d-9436f9b6eb4b","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/registration/Type/Constructor/constructor.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/constructor.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/constructor.md","rawTitle":"

Constructor Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Constructor Injection","uid":"Tutorial.Injection.Constructor","updated_at":"2019-04-05 01:56 AM","wordCount":396},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/constructor/param_count/index.html b/_site/tutorials/registration/type/constructor/param_count/index.html deleted file mode 100644 index 473a243..0000000 --- a/_site/tutorials/registration/type/constructor/param_count/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

By Number of Parameters

\n

Selecting constructor by number of parameters is the simplest form of selection. You could use this selection method if the constructor you invoking has unique number of parameters.

\n

Type of Parameter as Contract Type

\n

This method is useful when you are working on a Type that takes certain number of parameters but you don't care what these parameter types are.

\n

Parameters

\n

In a case like this you could use Resolve.Parameter() to specify that you want a parameter at this position to be resolved. For example, consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

It has several constructors with different number of parameters each. Normally, the container would try to run the most complex constructor, but if you want to invoke the one with just a single parameter you need to register it like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this registration you configure the container to invoke a constructor that takes just one parameter. The parameter is resolved using a contract with a type of the parameter and no name.

\n

Now if you resolve the type, the container will invoke that constructor and inject the parameter:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Generic Parameters

\n

The same method as above, could be used to invoke constructors with generic parameters. Consider the following class:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

To configure the container to invoke the first constructor you would execute the same code with exception of how you pass in a type of the contract. Registration of an open generic requires a conventional method call:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

When resolved, the container will invoke the first constructor and inject it with created instance of Object:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Parameter dependencies with Contract Name

\n

When configuring constructors with the method described above you should be mindful of parameter annotations and contract names these annotations might provide.

\n

When implicitly injecting a parameter, the container will recognize all metadata the parameter is annotated with and will properly inject it with correct contract. When you add an InjectionMember to configure the parameter you override all these annotations.

\n

If you look at the second constructor of SampleType<T> you will notice that the first parameter is marked with Dependency attribute. Normally, when resolving that parameter, Unity will, if present, use Name of the Contract the attribute provides. But when you register it as in the following example, you will override that contract:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

When resolved, Unity will execute the constructor but instead of dependency with contract name one it will use contract with no name.

\n

If you need to, you could override contract name explicitly as in the following example:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

If you'd like to preserve contracts from annotations, you need to use one of the following selection methods instead.

\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/10/2019","updated_at_date_time":"2019-03-10T20:00:03Z"},"_path":"tutorials/registration/type/constructor/param_count/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_count/","conceptual":"\n

By Number of Parameters

\n

Selecting constructor by number of parameters is the simplest form of selection. You could use this selection method if the constructor you invoking has unique number of parameters.

\n

Type of Parameter as Contract Type

\n

This method is useful when you are working on a Type that takes certain number of parameters but you don't care what these parameter types are.

\n

Parameters

\n

In a case like this you could use Resolve.Parameter() to specify that you want a parameter at this position to be resolved. For example, consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

It has several constructors with different number of parameters each. Normally, the container would try to run the most complex constructor, but if you want to invoke the one with just a single parameter you need to register it like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

In this registration you configure the container to invoke a constructor that takes just one parameter. The parameter is resolved using a contract with a type of the parameter and no name.

\n

Now if you resolve the type, the container will invoke that constructor and inject the parameter:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Generic Parameters

\n

The same method as above, could be used to invoke constructors with generic parameters. Consider the following class:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

To configure the container to invoke the first constructor you would execute the same code with exception of how you pass in a type of the contract. Registration of an open generic requires a conventional method call:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

When resolved, the container will invoke the first constructor and inject it with created instance of Object:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Parameter dependencies with Contract Name

\n

When configuring constructors with the method described above you should be mindful of parameter annotations and contract names these annotations might provide.

\n

When implicitly injecting a parameter, the container will recognize all metadata the parameter is annotated with and will properly inject it with correct contract. When you add an InjectionMember to configure the parameter you override all these annotations.

\n

If you look at the second constructor of SampleType<T> you will notice that the first parameter is marked with Dependency attribute. Normally, when resolving that parameter, Unity will, if present, use Name of the Contract the attribute provides. But when you register it as in the following example, you will override that contract:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

When resolved, Unity will execute the constructor but instead of dependency with contract name one it will use contract with no name.

\n

If you need to, you could override contract name explicitly as in the following example:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

If you'd like to preserve contracts from annotations, you need to use one of the following selection methods instead.

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_count.md","depot_name":".","document_id":"f933f186-0833-8a03-bf07-0a52c0085a6b","document_version_independent_id":"12c8b824-4e4b-7d3e-eb49-04960e9f8ba3","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/param_count.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_count.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_count.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor By Number of Parameters","uid":"Tutorial.Injection.Constructor.Count","updated_at":"2019-03-10 08:00 PM","wordCount":555},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/constructor/param_none/index.html b/_site/tutorials/registration/type/constructor/param_none/index.html deleted file mode 100644 index 2237156..0000000 --- a/_site/tutorials/registration/type/constructor/param_none/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

A Default called a constructor with no parameters. It could be explicitly defined on a Type or if Type has no defined constructors, C# will implicitly create one for you.

\n

Invoking Default Constructor

\n

To configure resolution of a Type with a default constructor you need to register that Type with Injection Constructor Member which takes no parameters.

\n

Class Service

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Class Service is a plain type with three accessible constructors. First constructor is a default constructor with no parameters, second and third constructors take one parameter each.

\n

Registering Service

\n

If you try to resolve this class with no registration, Unity will select one of the constructors with parameter. You can not guarantee which one it will select because both have the same number of parameters and each could be satisfied with dependencies.

\n
\n
TIP
\n

If Diagnostic is enabled, it will throw an ambiguous constructor exception.

\n
\n

To prevent ambiguity, or if you need to execute default constructor, you can register this Type and instruct the container to invoke default constructor during resolution. In simplest form this registration will look like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n
\n
NOTE
\n

Of corse you could add other instructions like mapping, name, etc. to the registration but for simplicity it is omitted in this example.

\n
\n

Resolving Service

\n

Once you register the Service with the container, you can resolve it normally:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

At first resolution the container will create a pipeline which invokes a default constructor to create the Service and will be using it for all subsequent resolutions.

\n

Default Generic Constructor

\n

Unity can register and create Generic types. It allows to register Closed and Open Generics and can resolve constructed types based on these.

\n

Class Service<T>

\n

The principle for registering of default constructor is exactly the same as for plain types. Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Class Service<T> is an open generic type with two constructors. First constructor is a default constructor with no parameters and second takes one parameter.

\n

Registering Service<T>

\n

Normally, Unity will create this Type by executing most complex constructor. To force Unity to use default constructor you need to register Service<T> and instruct the container to invoke it during resolution. You can register constructed generic based on Service<T> like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Or you can register Open Generic Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Resolving Service<T>

\n

If you resolve Service<object>:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

either registration will invoke the default constructor.

\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"4/5/2019","updated_at_date_time":"2019-04-05T01:56:47Z"},"_path":"tutorials/registration/type/constructor/param_none/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_none/","conceptual":"\n

A Default called a constructor with no parameters. It could be explicitly defined on a Type or if Type has no defined constructors, C# will implicitly create one for you.

\n

Invoking Default Constructor

\n

To configure resolution of a Type with a default constructor you need to register that Type with Injection Constructor Member which takes no parameters.

\n

Class Service

\n

Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Class Service is a plain type with three accessible constructors. First constructor is a default constructor with no parameters, second and third constructors take one parameter each.

\n

Registering Service

\n

If you try to resolve this class with no registration, Unity will select one of the constructors with parameter. You can not guarantee which one it will select because both have the same number of parameters and each could be satisfied with dependencies.

\n
\n
TIP
\n

If Diagnostic is enabled, it will throw an ambiguous constructor exception.

\n
\n

To prevent ambiguity, or if you need to execute default constructor, you can register this Type and instruct the container to invoke default constructor during resolution. In simplest form this registration will look like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n
\n
NOTE
\n

Of corse you could add other instructions like mapping, name, etc. to the registration but for simplicity it is omitted in this example.

\n
\n

Resolving Service

\n

Once you register the Service with the container, you can resolve it normally:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

At first resolution the container will create a pipeline which invokes a default constructor to create the Service and will be using it for all subsequent resolutions.

\n

Default Generic Constructor

\n

Unity can register and create Generic types. It allows to register Closed and Open Generics and can resolve constructed types based on these.

\n

Class Service<T>

\n

The principle for registering of default constructor is exactly the same as for plain types. Consider the following Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Class Service<T> is an open generic type with two constructors. First constructor is a default constructor with no parameters and second takes one parameter.

\n

Registering Service<T>

\n

Normally, Unity will create this Type by executing most complex constructor. To force Unity to use default constructor you need to register Service<T> and instruct the container to invoke it during resolution. You can register constructed generic based on Service<T> like this:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

Or you can register Open Generic Type:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n

Resolving Service<T>

\n

If you resolve Service<object>:

\n
\r\n
WARNING
\r\n

It looks like the sample you are looking for does not exist.

\r\n
\n

either registration will invoke the default constructor.

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_none.md","depot_name":".","document_id":"44080f41-8f6d-eb44-2550-bf960bb69e34","document_version_independent_id":"d1683f3a-6ff8-ac65-c68d-8171d54657d8","gitcommit":"https://github.com/unitycontainer/documentation/blob/0db2003d37b8f4c0715b03ac831d1d35afe0cd18/tutorials/registration/Type/Constructor/param_none.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_none.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_none.md","rawTitle":"

Default Constructors

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Default Constructor","uid":"Tutorial.Injection.Constructor.Default","updated_at":"2019-04-05 01:56 AM","wordCount":497},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/constructor/param_types/index.html b/_site/tutorials/registration/type/constructor/param_types/index.html deleted file mode 100644 index b93658a..0000000 --- a/_site/tutorials/registration/type/constructor/param_types/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Select Constructor by Parameter types

\n

Exact Match

\n

Compatible Type Match

\n

Contracts with Name

\n

Type Matching exactly

\n

Compatible Implementation

\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/10/2019","updated_at_date_time":"2019-03-10T20:00:03Z"},"_path":"tutorials/registration/type/constructor/param_types/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_types/","conceptual":"\n

Select Constructor by Parameter types

\n

Exact Match

\n

Compatible Type Match

\n

Contracts with Name

\n

Type Matching exactly

\n

Compatible Implementation

\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_types.md","depot_name":".","document_id":"a43b0380-00c5-f9f0-13a0-bcd8dfecb41b","document_version_independent_id":"cbce70bb-3d73-b545-7ca7-bfc6f0fed947","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/param_types.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_types.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_types.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor by Parameter Types","uid":"Tutorial.Injection.Constructor.Types","updated_at":"2019-03-10 08:00 PM","wordCount":39},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/constructor/param_values/index.html b/_site/tutorials/registration/type/constructor/param_values/index.html deleted file mode 100644 index e99f4a3..0000000 --- a/_site/tutorials/registration/type/constructor/param_values/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

See Also

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/10/2019","updated_at_date_time":"2019-03-10T20:00:03Z"},"_path":"tutorials/registration/type/constructor/param_values/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/constructor/param_values/","conceptual":"\n

See Also

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_values.md","depot_name":".","document_id":"cd589f0b-bc03-758c-0d5f-b570dc451473","document_version_independent_id":"a6cf7331-25f9-4155-a93b-1b9b1d859246","gitcommit":"https://github.com/unitycontainer/documentation/blob/def407738a9e4faa7af27aa5378faf3b04541ed7/tutorials/registration/Type/Constructor/param_values.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Constructor/param_values.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Constructor/param_values.md","rawTitle":"

Selecting Constructor

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Select Constructor by Parameter Values","uid":"Tutorial.Injection.Constructor.Values","updated_at":"2019-03-10 08:00 PM","wordCount":20},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/field/index.html b/_site/tutorials/registration/type/field/index.html deleted file mode 100644 index 6d9451d..0000000 --- a/_site/tutorials/registration/type/field/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/7/2019","updated_at_date_time":"2019-03-07T05:22:51Z"},"_path":"tutorials/registration/type/field/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/field/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/field.md","depot_name":".","document_id":"c2a3677e-e25a-23fc-1d1d-afcf1cae5b9c","document_version_independent_id":"21bedaea-483b-16e5-6828-da96ffd1aa89","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/field.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/field.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/field.md","rawTitle":"

Field Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Field Injection","uid":"Tutorial.Injection.Field","updated_at":"2019-03-07 05:22 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/injection/default/index.html b/_site/tutorials/registration/type/injection/default/index.html deleted file mode 100644 index bacc7ac..0000000 --- a/_site/tutorials/registration/type/injection/default/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/11/2019","updated_at_date_time":"2019-03-11T01:08:46Z"},"_path":"tutorials/registration/type/injection/default/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/injection/default/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/default.md","depot_name":".","document_id":"f0ac9ade-1043-129a-d73a-91953ac7b231","document_version_independent_id":"14895510-22b9-f067-0a3b-42bb0235c831","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/default.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/default.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/default.md","rawTitle":"

Support for Default Values

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Support for Default Values","uid":"Tutorial.Injection.Default","updated_at":"2019-03-11 01:08 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/injection/injected/index.html b/_site/tutorials/registration/type/injection/injected/index.html deleted file mode 100644 index 5bfa055..0000000 --- a/_site/tutorials/registration/type/injection/injected/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/11/2019","updated_at_date_time":"2019-03-11T01:08:46Z"},"_path":"tutorials/registration/type/injection/injected/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/injection/injected/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injected.md","depot_name":".","document_id":"32c573ec-454c-caaa-9c9c-3888e8929b0d","document_version_independent_id":"a328b057-ba1f-20ac-e60a-04ea7bebc1bf","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/injected.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injected.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/injected.md","rawTitle":"

Injecting Dependency Values

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Injecting Dependency Values","uid":"Tutorial.Injection.Injected","updated_at":"2019-03-11 01:08 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/injection/injection/index.html b/_site/tutorials/registration/type/injection/injection/index.html deleted file mode 100644 index 3ce5561..0000000 --- a/_site/tutorials/registration/type/injection/injection/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/11/2019","updated_at_date_time":"2019-03-11T01:08:46Z"},"_path":"tutorials/registration/type/injection/injection/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/injection/injection/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injection.md","depot_name":".","document_id":"22387587-d7a8-4e6a-654c-d8728d074653","document_version_independent_id":"09bc78cd-f176-4aaa-41cd-119e51ab8aca","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/injection.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/injection.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/injection.md","rawTitle":"

Dependency Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Dependency Injection","uid":"Tutorial.Injection","updated_at":"2019-03-11 01:08 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/injection/resolved/index.html b/_site/tutorials/registration/type/injection/resolved/index.html deleted file mode 100644 index 40d481f..0000000 --- a/_site/tutorials/registration/type/injection/resolved/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/11/2019","updated_at_date_time":"2019-03-11T01:08:46Z"},"_path":"tutorials/registration/type/injection/resolved/index.html","_tocRel":"../../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/injection/resolved/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/resolved.md","depot_name":".","document_id":"17dac8cb-7105-cb4b-9341-a478df7a564e","document_version_independent_id":"4afe44d5-4340-acd2-3533-c8fe0984dbcb","gitcommit":"https://github.com/unitycontainer/documentation/blob/1e6fcc4efe4012305b62c6babf4d0f5cb855640a/tutorials/registration/Type/Injection/resolved.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/Injection/resolved.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/Injection/resolved.md","rawTitle":"

Resolving Dependency Values

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Resolving Dependency Values","uid":"Tutorial.Injection.Resolved","updated_at":"2019-03-11 01:08 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/method/index.html b/_site/tutorials/registration/type/method/index.html deleted file mode 100644 index 600aa23..0000000 --- a/_site/tutorials/registration/type/method/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/7/2019","updated_at_date_time":"2019-03-07T05:22:51Z"},"_path":"tutorials/registration/type/method/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/method/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/method.md","depot_name":".","document_id":"ece87da2-2138-25a2-4b62-f09b94f500d9","document_version_independent_id":"df634c41-a696-a56e-3edb-6be9079a6660","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/method.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/method.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/method.md","rawTitle":"

Method Invocation

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Method Injection","uid":"Tutorial.Injection.Method","updated_at":"2019-03-07 05:22 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/parameter/index.html b/_site/tutorials/registration/type/parameter/index.html deleted file mode 100644 index f67fd51..0000000 --- a/_site/tutorials/registration/type/parameter/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/7/2019","updated_at_date_time":"2019-03-07T05:22:51Z"},"_path":"tutorials/registration/type/parameter/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/parameter/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/parameter.md","depot_name":".","document_id":"cb8b1b59-03db-0e46-fead-1d5d5a92812f","document_version_independent_id":"a8fc56d0-58e8-03ea-b38f-ad68a88818c2","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/parameter.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/parameter.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/parameter.md","rawTitle":"

Parameter Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Parameter Injection","uid":"Tutorial.Injection.Parameter","updated_at":"2019-03-07 05:22 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/property/index.html b/_site/tutorials/registration/type/property/index.html deleted file mode 100644 index 3f54972..0000000 --- a/_site/tutorials/registration/type/property/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"
","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/7/2019","updated_at_date_time":"2019-03-07T05:22:51Z"},"_path":"tutorials/registration/type/property/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/property/","conceptual":"\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/property.md","depot_name":".","document_id":"e1fdee6b-4cc3-4110-4ed7-a825595503d1","document_version_independent_id":"d1d79004-065d-bfbf-d2b1-f3c2a6da14df","gitcommit":"https://github.com/unitycontainer/documentation/blob/f7cbb8984464479a73b5e679f9345c034bc91f38/tutorials/registration/Type/property.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/property.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/property.md","rawTitle":"

Property Injection

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Property Injection","uid":"Tutorial.Injection.Property","updated_at":"2019-03-07 05:22 AM","wordCount":0},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/registration/type/registration/index.html b/_site/tutorials/registration/type/registration/index.html deleted file mode 100644 index d72a60c..0000000 --- a/_site/tutorials/registration/type/registration/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"\n

Type registration is where all the Unity magic is happening. It provides complete and flexible control of all aspects of type creation and management.

\n

When a Type is registered Unity creates a contract (a registration) consisting of a Type, a Name, and instructions on how this contract should be fulfilled when requested.

\n

Minimum Registration Requirements

\n

The only required part of the registration is a registered Type itself. Theoretically you could register a Type like this:

\n
container.RegisterType<Service>();\n
\n

This would tell the container to use all defaults when creating Service. Registrations like this do not make much sense. If creation process does not require any customization, all that time spent on registering such Type is wasted. It is measurably faster to resolve a plain Type from the container if it is not registered at all.

\n

When a Type is annotated with injection attributes it does not require registration either. If you are satisfied with annotated selections, appropriate constructor and all other members are annotated, and you do not require lifetime management for created instances, the Type should not be registered.

\n

You should only register types if at least one of the following is true:

\n
    \n
  • Contract/Registration requires a Name
  • \n
  • Require a mapping between service and implementation types
  • \n
  • Require lifetime policy other than transient
  • \n
  • Need to override injection annotated with attribute(s)
  • \n
  • Nondefault constructor should be selected
  • \n
  • Properties or fields should be injected
  • \n
  • Method(s) should be called during initialization
  • \n
\n

Creating Registration Contracts

\n

Simplest form of a contract is a registration without a Name ( the Name is null ). This type of registration is called default and in some cases is used as a prototype during resolution of Generic types (hence name default).

\n

A contract could have a Name. The Name could be any arbitrary string of one or more characters. The simple named contract could be registered like this:

\n
container.RegisterType<Service>("Contract Name");\n
\n
\n
NOTE
\n

It is not recommended to use empty strings as names.

\n
\n

Creating Type Mapping

\n

A mapping instructs Unity on how to satisfy the contract and what implementation Type should be used to create an object. For example is you want to associate an interface IService with implementation Service you would register it like this:

\n
container.RegisterType<IService, Service>();\n
\n

Or you could register multiple implementations for the same service:

\n
container.RegisterType<IService, MailService>("Email");\ncontainer.RegisterType<IService, WebService>("WebMail");\ncontainer.RegisterType<IService, SecureService>("Encrypted");\n
\n

For more information see <xref:Tutorial.Registration.Mapping>

\n

Lifetime Management

\n

Unity provides wide variety of lifetime managers compatible with type registrations. Each of these managers provide unique algorithm for instance management.

\n

In example above services are created on each request. In most cases it is desireable to create services only once. To create singleton services appropriate lifetime managers must be added to the registration:

\n
container.RegisterType<IService, MailService>("Email", TypeLifetime.Singleton);\ncontainer.RegisterType<IService, WebService>("WebMail", TypeLifetime.Singleton);\ncontainer.RegisterType<IService, SecureService>("Encrypted", TypeLifetime.Singleton);\n
\n

For more information about lifetime management see Lifetime Management

\n

Creation Pipeline

\n

Unity instantiates an objects by creating a resolver pipeline and executing it with passed in injection values. Each pipeline consists of a several steps with each step performing part of the initialization.

\n

How the pipeline is assembled and what values are injected is controlled by collection of Injection Member objects passed to registration method. The normal steps of the object creation process are:

\n

Injection Instructions

\n

During the registration you could Configure the container to select certain constructor, initialize properties and fields, call methods, and inject values and instructions for dependencies. All this is done by passing appropriate Injection Members to the registration. For more information see:

\n\n","page":{"_appFaviconPath":"images/favicon.png","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appTitle":"Unity Container","_op_canonicalUrlPrefix":"https://en-us/","_op_gitContributorInformation":{"update_at":"3/11/2019","updated_at_date_time":"2019-03-11T00:52:36Z"},"_path":"tutorials/registration/type/registration/index.html","_tocRel":"../../../toc.json","canonical_url":"https:///en-us/tutorials/registration/type/registration/","conceptual":"\n

Type registration is where all the Unity magic is happening. It provides complete and flexible control of all aspects of type creation and management.

\n

When a Type is registered Unity creates a contract (a registration) consisting of a Type, a Name, and instructions on how this contract should be fulfilled when requested.

\n

Minimum Registration Requirements

\n

The only required part of the registration is a registered Type itself. Theoretically you could register a Type like this:

\n
container.RegisterType<Service>();\n
\n

This would tell the container to use all defaults when creating Service. Registrations like this do not make much sense. If creation process does not require any customization, all that time spent on registering such Type is wasted. It is measurably faster to resolve a plain Type from the container if it is not registered at all.

\n

When a Type is annotated with injection attributes it does not require registration either. If you are satisfied with annotated selections, appropriate constructor and all other members are annotated, and you do not require lifetime management for created instances, the Type should not be registered.

\n

You should only register types if at least one of the following is true:

\n
    \n
  • Contract/Registration requires a Name
  • \n
  • Require a mapping between service and implementation types
  • \n
  • Require lifetime policy other than transient
  • \n
  • Need to override injection annotated with attribute(s)
  • \n
  • Nondefault constructor should be selected
  • \n
  • Properties or fields should be injected
  • \n
  • Method(s) should be called during initialization
  • \n
\n

Creating Registration Contracts

\n

Simplest form of a contract is a registration without a Name ( the Name is null ). This type of registration is called default and in some cases is used as a prototype during resolution of Generic types (hence name default).

\n

A contract could have a Name. The Name could be any arbitrary string of one or more characters. The simple named contract could be registered like this:

\n
container.RegisterType<Service>("Contract Name");\n
\n
\n
NOTE
\n

It is not recommended to use empty strings as names.

\n
\n

Creating Type Mapping

\n

A mapping instructs Unity on how to satisfy the contract and what implementation Type should be used to create an object. For example is you want to associate an interface IService with implementation Service you would register it like this:

\n
container.RegisterType<IService, Service>();\n
\n

Or you could register multiple implementations for the same service:

\n
container.RegisterType<IService, MailService>("Email");\ncontainer.RegisterType<IService, WebService>("WebMail");\ncontainer.RegisterType<IService, SecureService>("Encrypted");\n
\n

For more information see <xref:Tutorial.Registration.Mapping>

\n

Lifetime Management

\n

Unity provides wide variety of lifetime managers compatible with type registrations. Each of these managers provide unique algorithm for instance management.

\n

In example above services are created on each request. In most cases it is desireable to create services only once. To create singleton services appropriate lifetime managers must be added to the registration:

\n
container.RegisterType<IService, MailService>("Email", TypeLifetime.Singleton);\ncontainer.RegisterType<IService, WebService>("WebMail", TypeLifetime.Singleton);\ncontainer.RegisterType<IService, SecureService>("Encrypted", TypeLifetime.Singleton);\n
\n

For more information about lifetime management see Lifetime Management

\n

Creation Pipeline

\n

Unity instantiates an objects by creating a resolver pipeline and executing it with passed in injection values. Each pipeline consists of a several steps with each step performing part of the initialization.

\n

How the pipeline is assembled and what values are injected is controlled by collection of Injection Member objects passed to registration method. The normal steps of the object creation process are:

\n

Injection Instructions

\n

During the registration you could Configure the container to select certain constructor, initialize properties and fields, call methods, and inject values and instructions for dependencies. All this is done by passing appropriate Injection Members to the registration. For more information see:

\n\n","content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/registration.md","depot_name":".","document_id":"78bfd467-15ee-c33f-03fe-7bf8e5fa4acf","document_version_independent_id":"6550f935-d2d3-ea0d-a876-56627397815d","gitcommit":"https://github.com/unitycontainer/documentation/blob/2db5f0db6ca55d08f45572868da0e40bb64f7bc0/tutorials/registration/Type/registration.md","locale":"en-us","original_content_git_url":"https://github.com/unitycontainer/documentation/blob/develop/tutorials/registration/Type/registration.md","original_content_git_url_template":"{repo}/blob/{branch}/tutorials/registration/Type/registration.md","rawTitle":"

Type Registration

","search.ms_docsetname":"","search.ms_product":"","search.ms_sitename":"Docs","site_name":"Docs","title":"Type Registration","uid":"Tutorial.Registration.Type","updated_at":"2019-03-11 12:52 AM","wordCount":576},"metadata":"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","theme_rel":"..\\..\\..\\..\\_themes"} \ No newline at end of file diff --git a/_site/tutorials/toc.json b/_site/tutorials/toc.json deleted file mode 100644 index b0a70ff..0000000 --- a/_site/tutorials/toc.json +++ /dev/null @@ -1 +0,0 @@ -{"metadata":{"_appTitle":"Unity Container","_appFooter":"Copyright © 2008–2019 Unity Container project","_appLogoPath":"images/logo.svg","_appFaviconPath":"images/favicon.png"},"items":[{"name":"Composition","items":[{"name":"Resolution","items":[{"name":"Resolution","href":"composition/resolution/resolution/","uid":"Tutorial.Resolution"},{"name":"Type","href":"composition/resolution/type/"}],"topicUid":"Tutorial.Resolution"},{"name":"Build-Up","items":[{"name":"Build Up","href":"composition/buildup/buildup/","uid":"Tutorial.BuildUp"}],"topicUid":"Tutorial.BuildUp"},{"name":"Type Mapping","items":[{"name":"Service To Implementation","href":"composition/mapping/implementation/","uid":"Tutorial.Mapping.Implementation"},{"name":"Generic Mapping","href":"composition/mapping/generic/","uid":"Tutorial.Mapping.Generic"}],"topicUid":"Tutorial.Mapping"},{"name":"Selection","items":[{"name":"Constructor","href":"composition/selection/constructor/","uid":"Tutorial.Selection.Constructor"}],"topicUid":"Tutorial.Resolution.Selection"},{"name":"Generics","items":[{"name":"Metadata","href":"composition/generics/metadata/","uid":"Tutorial.Generics.Metadata"},{"name":"Lazy","href":"composition/generics/lazy/","uid":"Tutorial.Lazy"},{"name":"Deferred","href":"composition/generics/deferred/","uid":"Tutorial.Deferred"}],"topicUid":"Tutorial.Generics"},{"name":"Collections","href":"composition/collections/"},{"name":"Overrides","items":[{"name":"Parameter","href":"composition/overrides/parameter/","uid":"Tutorial.Resolution.Override.Parameter"},{"name":"Field","href":"composition/overrides/field/","uid":"Tutorial.Resolution.Override.Field"},{"name":"Property","href":"composition/overrides/property/","uid":"Tutorial.Resolution.Override.Property"},{"name":"Dependency","href":"composition/overrides/dependency/","uid":"Tutorial.Resolution.Override.Dependency"}],"topicUid":"Tutorial.Resolution.Override"}],"topicUid":"Tutorial.Composition"},{"name":"Attributed Injection Model","items":[{"name":"Constructor","href":"annotation/constructor/","uid":"Tutorial.Annotation.Constructor"},{"name":"Parameter","href":"annotation/parameter/","uid":"Tutorial.Annotation.Parameter"},{"name":"Method","href":"annotation/method/","uid":"Tutorial.Annotation.Method"},{"name":"Field","href":"annotation/field/","uid":"Tutorial.Annotation.Field"},{"name":"Property","href":"annotation/property/","uid":"Tutorial.Annotation.Property"}],"topicUid":"Tutorial.Annotation"},{"name":"Registration","items":[{"name":"Metadata","href":"registration/metadata/","uid":"Tutorial.Registration.Metadata"},{"name":"Instance Registration","href":"registration/instance/","uid":"Tutorial.Registration.Instance"},{"name":"Factory Registration","href":"registration/factory/","uid":"Tutorial.Registration.Factory"},{"name":"Type Registration","items":[{"name":"Constructor","items":[{"name":"Automatic Selection","href":"registration/type/constructor/automatic/","uid":"Tutorial.Injection.Constructor.Implicit"},{"name":"Attribute Annotation","href":"registration/type/constructor/annotation/","uid":"Tutorial.Injection.Constructor.Annotation"},{"name":"Invoking default ctor()","href":"registration/type/constructor/param_none/","uid":"Tutorial.Injection.Constructor.Default"},{"name":"Select By Parameters Count","href":"registration/type/constructor/param_count/","uid":"Tutorial.Injection.Constructor.Count"},{"name":"Select By Parameter Types","href":"registration/type/constructor/param_types/","uid":"Tutorial.Injection.Constructor.Types"}],"topicUid":"Tutorial.Injection.Constructor"},{"name":"Fields","href":"registration/type/field/","uid":"Tutorial.Injection.Field"},{"name":"Properties","href":"registration/type/property/","uid":"Tutorial.Injection.Property"},{"name":"Method Invocation","href":"registration/type/method/","uid":"Tutorial.Injection.Method"},{"name":"Dependency Injection","items":[{"name":"Resolved values","href":"registration/type/injection/resolved/","uid":"Tutorial.Injection.Resolved"},{"name":"Injected values","href":"registration/type/injection/injected/","uid":"Tutorial.Injection.Injected"},{"name":"Default values","href":"registration/type/injection/default/","uid":"Tutorial.Injection.Default"}],"topicUid":"Tutorial.Injection"}],"topicUid":"Tutorial.Registration.Type"}],"topicUid":"Tutorial.Registration"},{"name":"Hierarchies","href":"hierarchies/","uid":"Tutorial.Container.Hierarchy"},{"name":"Lifetime","items":[{"name":"Transient","href":"lifetime/transient/","uid":"Tutorial.Lifetime.Transient"},{"name":"Singleton","href":"lifetime/singleton/","uid":"Tutorial.Lifetime.Singleton"},{"name":"Container","href":"lifetime/container/","uid":"Tutorial.Lifetime.Container"},{"name":"Container Transient","href":"lifetime/container_transient/","uid":"Tutorial.Lifetime.Container.Transient"},{"name":"Hierarchical","href":"lifetime/hierarchical/","uid":"Tutorial.Lifetime.Hierarchical"},{"name":"Per Resolve","href":"lifetime/resolve/","uid":"Tutorial.Lifetime.Resolve"},{"name":"Per Thread","href":"lifetime/thread/","uid":"Tutorial.Lifetime.Thread"},{"name":"External","href":"lifetime/external/","uid":"Tutorial.Lifetime.External"}],"topicUid":"Tutorial.Lifetime"},{"name":"Extensions","items":[{"name":"Diagnostic","href":"extensions/diagnostic/","uid":"Tutorial.Extension.Diagnostic"},{"name":"Legacy","href":"extensions/legacy/","uid":"Tutorial.Extension.Legacy"},{"name":"Force Activation","href":"extensions/activation/","uid":"Tutorial.Extension.Activation"},{"name":"Force Compilation","href":"extensions/compilation/","uid":"Tutorial.Extension.Compilation"}],"topicUid":"Tutorial.Extensions"}]} \ No newline at end of file From 9e3babe861e34a8ed6cfef88769a9dee7a555de6 Mon Sep 17 00:00:00 2001 From: Eugene Sadovoi Date: Fri, 3 Apr 2020 14:00:14 -0700 Subject: [PATCH 4/4] Ignore default generated path --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 55fef6c..5dae65f 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ /node_modules /package-lock.json /yarn.lock +/_site