Table of Contents

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

acquisition IResourceAcquisition<T>
cancellationToken CancellationToken

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

resource ResourceReference<T>
cancellationToken CancellationToken

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

create Func<T>

Returns

T

Type Parameters

T