Show / Hide Table of Contents

Class HierarchicalLifetimeManager

A special lifetime manager which works like ContainerControlledLifetimeManager, except that in the presence of child containers, each child gets it's own instance of the object, instead of sharing one in the common parent.

Inheritance
Object
LifetimeManager
SynchronizedLifetimeManager
HierarchicalLifetimeManager
Implements
IDisposable
IFactoryLifetimeManager
ITypeLifetimeManager
Inherited Members
SynchronizedLifetimeManager.ResolveTimeout
SynchronizedLifetimeManager.TryGetValue(ILifetimeContainer)
SynchronizedLifetimeManager.GetValue(ILifetimeContainer)
SynchronizedLifetimeManager.SetValue(Object, ILifetimeContainer)
SynchronizedLifetimeManager.Recover()
SynchronizedLifetimeManager.TryExit()
SynchronizedLifetimeManager.Dispose()
LifetimeManager.NoValue
LifetimeManager.InUse
LifetimeManager.TryGet
LifetimeManager.Get
LifetimeManager.Set
LifetimeManager.CreateLifetimePolicy()
Object.Equals(Object)
Object.Equals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()
Object.ReferenceEquals(Object, Object)
Namespace: Unity.Lifetime
Assembly: Unity.Abstractions.dll
Syntax
public class HierarchicalLifetimeManager : SynchronizedLifetimeManager, IDisposable, IFactoryLifetimeManager, ITypeLifetimeManager
Remarks

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 type the type is resolved the same instance will be returned.

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 requested to resolve the type, it will return stored instance.

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

Methods

| Improve this Doc View Source

Dispose(Boolean)

Standard Dispose pattern implementation.

Declaration
protected override void Dispose(bool disposing)
Parameters
Type Name Description
Boolean disposing

Always true, since we don't have a finalizer.

Overrides
SynchronizedLifetimeManager.Dispose(Boolean)
| Improve this Doc View Source

OnCreateLifetimeManager()

Implementation of CreateLifetimePolicy() policy.

Declaration
protected override LifetimeManager OnCreateLifetimeManager()
Returns
Type Description
LifetimeManager

A new instance of the same lifetime manager of appropriate type

Overrides
LifetimeManager.OnCreateLifetimeManager()
| Improve this Doc View Source

RemoveValue(ILifetimeContainer)

Remove the given object from backing store.

Declaration
public override void RemoveValue(ILifetimeContainer container = null)
Parameters
Type Name Description
ILifetimeContainer container

The container this lifetime belongs to

Overrides
LifetimeManager.RemoveValue(ILifetimeContainer)
| Improve this Doc View Source

SynchronizedGetValue(ILifetimeContainer)

Performs the actual retrieval of a value from the backing store associated with this Lifetime policy.

Declaration
protected override object SynchronizedGetValue(ILifetimeContainer container = null)
Parameters
Type Name Description
ILifetimeContainer container

Instance of the lifetime's container

Returns
Type Description
Object

the object desired, or null if no such object is currently stored.

Overrides
SynchronizedLifetimeManager.SynchronizedGetValue(ILifetimeContainer)
Remarks

This method is invoked by GetValue(ILifetimeContainer) after it has acquired its lock.

| Improve this Doc View Source

SynchronizedSetValue(Object, ILifetimeContainer)

Performs the actual storage of the given value into backing store for retrieval later.

Declaration
protected override void SynchronizedSetValue(object newValue, ILifetimeContainer container = null)
Parameters
Type Name Description
Object newValue

The object being stored.

ILifetimeContainer container

Instance of the lifetime's container

Overrides
SynchronizedLifetimeManager.SynchronizedSetValue(Object, ILifetimeContainer)
Remarks

This method is invoked by SetValue(Object, ILifetimeContainer) before releasing its lock.

| Improve this Doc View Source

ToString()

This method provides human readable representation of the lifetime

Declaration
public override string ToString()
Returns
Type Description
String

Name of the lifetime

Overrides
Object.ToString()

Implements

System.IDisposable
IFactoryLifetimeManager
ITypeLifetimeManager

Extension Methods

InjectionMatching.Matches(Object, Type)
InjectionMatching.MatchesObject(Object, Type)
  • Improve this Doc
  • View Source
In This Article
Back to top Copyright © 2020 .NET Foundation and Contributors. All Rights Reserved