Class LifetimeContext
- Namespace
- MackySoft.Navigathena
- Assembly
- MackySoft.Navigathena.dll
Registers owned objects, acquired resources, and borrowed references with a runtime-managed lifetime.
public abstract class LifetimeContext
- Inheritance
-
LifetimeContext
- Inherited Members
Remarks
Registration is available only during the associated creation, initialization, or preparation callback. CreateOwned and AcquireAsync share one registration order and release in reverse order after their users stop. Register owned dependencies before the objects or acquisitions that use them; asynchronous acquisition completion does not change this order. A failed release retains earlier registrations and borrowed references. The failed attempt is not retried.
Methods
AcquireAsync<T>(IResourceAcquisition<T>, CancellationToken)
Owns an acquisition before starting it and awaits its release when this lifetime ends.
public abstract ValueTask<T> AcquireAsync<T>(IResourceAcquisition<T> acquisition, CancellationToken cancellationToken = default)
Parameters
acquisitionIResourceAcquisition<T>cancellationTokenCancellationToken
Returns
- ValueTask<T>
Type Parameters
T
BorrowAsync<T>(ResourceReference<T>, CancellationToken)
Registers use of an externally owned resource without taking responsibility for destroying it.
public abstract ValueTask<T> BorrowAsync<T>(ResourceReference<T> resource, CancellationToken cancellationToken = default) where T : class
Parameters
resourceResourceReference<T>cancellationTokenCancellationToken
Returns
- ValueTask<T>
Type Parameters
T
CreateOwned<T>(Func<T>)
Registers ownership before calling a normal constructor factory. Prefers asynchronous disposal when available.
public abstract T CreateOwned<T>(Func<T> create) where T : class
Parameters
createFunc<T>
Returns
- T
Type Parameters
T