Skip to content

Add IContainerContext interface #35

Closed
@ENikS

Description

@ENikS

Add 'official' inward looking interface to the container.

This interface should be a standard (same as IUnityContainer is for outside world) internal window to the container's engine.

/// <summary>
/// Container interface exposing engine to internal container parts 
/// </summary>
public interface IContainerContext
{
    /// <summary>
    /// The container that this context is associated with.
    /// </summary>
    /// <value>The <see cref="IUnityContainer"/> object.</value>
    IUnityContainer Container { get; }

    /// <summary>
    /// The <see cref="ILifetimeContainer"/> that this container uses.
    /// </summary>
    /// <value>The <see cref="ILifetimeContainer"/> is used to manage <see cref="IDisposable"/> objects that the container is managing.</value>
    ILifetimeContainer Lifetime { get; }

    /// <summary>
    /// The policies this container uses.
    /// </summary>
    /// <remarks>The <see cref="IPolicyList"/> the that container uses to build objects.</remarks>
    IPolicyList Policies { get; }

}

This interface is different from ExtensionContext in usage pattern. ExtensionContext exposes Strategies, Defaults and etc. and mainly used to configure and extend the container.
This inerface exposes only parts required for operating already configured container.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Enhancement 🔨Improvement of existing features

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions