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.
Inherited Members
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 SourceDispose(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
| Improve this Doc View SourceOnCreateLifetimeManager()
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
| Improve this Doc View SourceRemoveValue(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
| Improve this Doc View SourceSynchronizedGetValue(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
Remarks
This method is invoked by GetValue(ILifetimeContainer) after it has acquired its lock.
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
Remarks
This method is invoked by SetValue(Object, ILifetimeContainer) before releasing its lock.
ToString()
This method provides human readable representation of the lifetime
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
String | Name of the lifetime |