text:
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>LightInject</name>
    </assembly>
    <members>
        <member name="T:LightInject.GetInstanceDelegate">
            <summary>
            A delegate that represent the dynamic method compiled to resolved service instances.
            </summary>
            <param name="args">The arguments used by the dynamic method that this delegate represents.</param>
            <returns>A service instance.</returns>
        </member>
        <member name="T:LightInject.IServiceRegistry">
            <summary>
            Defines a set of methods used to register services into the service container.
            </summary>
        </member>
        <member name="P:LightInject.IServiceRegistry.AvailableServices">
            <summary>
            Gets a list of <see cref="T:LightInject.ServiceRegistration"/> instances that represents the
            registered services.
            </summary>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register(System.Type,System.Type)">
            <summary>
            Registers the <paramref name="serviceType"/> with the <paramref name="implementingType"/>.
            </summary>
            <param name="serviceType">The service type to register.</param>
            <param name="implementingType">The implementing type.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register(System.Type,System.Type,LightInject.ILifetime)">
            <summary>
            Registers the <paramref name="serviceType"/> with the <paramref name="implementingType"/>.
            </summary>
            <param name="serviceType">The service type to register.</param>
            <param name="implementingType">The implementing type.</param>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register(System.Type,System.Type,System.String)">
            <summary>
            Registers the <paramref name="serviceType"/> with the <paramref name="implementingType"/>.
            </summary>
            <param name="serviceType">The service type to register.</param>
            <param name="implementingType">The implementing type.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register(System.Type,System.Type,System.String,LightInject.ILifetime)">
            <summary>
            Registers the <paramref name="serviceType"/> with the <paramref name="implementingType"/>.
            </summary>
            <param name="serviceType">The service type to register.</param>
            <param name="implementingType">The implementing type.</param>
            <param name="serviceName">The name of the service.</param>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``2">
            <summary>
            Registers the <typeparamref name="TService"/> with the <typeparamref name="TImplementation"/>.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <typeparam name="TImplementation">The implementing type.</typeparam>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``2(LightInject.ILifetime)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <typeparamref name="TImplementation"/>.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <typeparam name="TImplementation">The implementing type.</typeparam>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``2(System.String)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <typeparamref name="TImplementation"/>.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <typeparam name="TImplementation">The implementing type.</typeparam>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``2(System.String,LightInject.ILifetime)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <typeparamref name="TImplementation"/>.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <typeparam name="TImplementation">The implementing type.</typeparam>
            <param name="serviceName">The name of the service.</param>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.RegisterInstance``1(``0)">
            <summary>
            Registers the <typeparamref name="TService"/> with the given <paramref name="instance"/>.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="instance">The instance returned when this service is requested.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.RegisterInstance``1(``0,System.String)">
            <summary>
            Registers the <typeparamref name="TService"/> with the given <paramref name="instance"/>.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="instance">The instance returned when this service is requested.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.RegisterInstance(System.Type,System.Object)">
            <summary>
            Registers the <paramref name="serviceType"/> with the given <paramref name="instance"/>.
            </summary>
            <param name="serviceType">The service type to register.</param>
            <param name="instance">The instance returned when this service is requested.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.RegisterInstance(System.Type,System.Object,System.String)">
            <summary>
            Registers the <paramref name="serviceType"/> with the given <paramref name="instance"/>.
            </summary>
            <param name="serviceType">The service type to register.</param>
            <param name="instance">The instance returned when this service is requested.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``1">
            <summary>
            Registers a concrete type as a service.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``1(LightInject.ILifetime)">
            <summary>
            Registers a concrete type as a service.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register(System.Type)">
            <summary>
            Registers a concrete type as a service.
            </summary>
            <param name="serviceType">The concrete type to register.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register(System.Type,LightInject.ILifetime)">
            <summary>
            Registers a concrete type as a service.
            </summary>
            <param name="serviceType">The concrete type to register.</param>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``1(System.Func{LightInject.IServiceFactory,``0})">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``2(System.Func{LightInject.IServiceFactory,``0,``1})">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T">The parameter type.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``2(System.Func{LightInject.IServiceFactory,``0,``1},System.String)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T">The parameter type.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``3(System.Func{LightInject.IServiceFactory,``0,``1,``2})">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``3(System.Func{LightInject.IServiceFactory,``0,``1,``2},System.String)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``4(System.Func{LightInject.IServiceFactory,``0,``1,``2,``3})">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``4(System.Func{LightInject.IServiceFactory,``0,``1,``2,``3},System.String)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``5(System.Func{LightInject.IServiceFactory,``0,``1,``2,``3,``4})">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="T4">The type of the fourth parameter.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``5(System.Func{LightInject.IServiceFactory,``0,``1,``2,``3,``4},System.String)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="T4">The type of the fourth parameter.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``1(System.Func{LightInject.IServiceFactory,``0},LightInject.ILifetime)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">The lambdaExpression that describes the dependencies of the service.</param>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``1(System.Func{LightInject.IServiceFactory,``0},System.String)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">The lambdaExpression that describes the dependencies of the service.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register``1(System.Func{LightInject.IServiceFactory,``0},System.String,LightInject.ILifetime)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">The lambdaExpression that describes the dependencies of the service.</param>
            <param name="serviceName">The name of the service.</param>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.RegisterFallback(System.Func{System.Type,System.String,System.Boolean},System.Func{LightInject.ServiceRequest,System.Object})">
            <summary>
            Registers a custom factory delegate used to create services that is otherwise unknown to the service container.
            </summary>
            <param name="predicate">Determines if the service can be created by the <paramref name="factory"/> delegate.</param>
            <param name="factory">Creates a service instance according to the <paramref name="predicate"/> predicate.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.RegisterFallback(System.Func{System.Type,System.String,System.Boolean},System.Func{LightInject.ServiceRequest,System.Object},LightInject.ILifetime)">
            <summary>
            Registers a custom factory delegate used to create services that is otherwise unknown to the service container.
            </summary>
            <param name="predicate">Determines if the service can be created by the <paramref name="factory"/> delegate.</param>
            <param name="factory">Creates a service instance according to the <paramref name="predicate"/> predicate.</param>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Register(LightInject.ServiceRegistration)">
            <summary>
            Registers a service based on a <see cref="T:LightInject.ServiceRegistration"/> instance.
            </summary>
            <param name="serviceRegistration">The <see cref="T:LightInject.ServiceRegistration"/> instance that contains service metadata.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.RegisterAssembly(System.Reflection.Assembly)">
            <summary>
            Registers composition roots from the given <paramref name="assembly"/>.
            </summary>
            <param name="assembly">The assembly to be scanned for services.</param>
            <remarks>
            If the target <paramref name="assembly"/> contains an implementation of the <see cref="T:LightInject.ICompositionRoot"/> interface, this
            will be used to configure the container.
            </remarks>
        </member>
        <member name="M:LightInject.IServiceRegistry.RegisterAssembly(System.Reflection.Assembly,System.Func{System.Type,System.Type,System.Boolean})">
            <summary>
            Registers services from the given <paramref name="assembly"/>.
            </summary>
            <param name="assembly">The assembly to be scanned for services.</param>
            <param name="shouldRegister">A function delegate that determines if a service implementation should be registered.</param>
            <remarks>
            If the target <paramref name="assembly"/> contains an implementation of the <see cref="T:LightInject.ICompositionRoot"/> interface, this
            will be used to configure the container.
            </remarks>
        </member>
        <member name="M:LightInject.IServiceRegistry.RegisterAssembly(System.Reflection.Assembly,System.Func{LightInject.ILifetime})">
            <summary>
            Registers services from the given <paramref name="assembly"/>.
            </summary>
            <param name="assembly">The assembly to be scanned for services.</param>
            <param name="lifetimeFactory">The <see cref="T:LightInject.ILifetime"/> factory that controls the lifetime of the registered service.</param>
            <remarks>
            If the target <paramref name="assembly"/> contains an implementation of the <see cref="T:LightInject.ICompositionRoot"/> interface, this
            will be used to configure the container.
            </remarks>
        </member>
        <member name="M:LightInject.IServiceRegistry.RegisterAssembly(System.Reflection.Assembly,System.Func{LightInject.ILifetime},System.Func{System.Type,System.Type,System.Boolean})">
            <summary>
            Registers services from the given <paramref name="assembly"/>.
            </summary>
            <param name="assembly">The assembly to be scanned for services.</param>
            <param name="lifetimeFactory">The <see cref="T:LightInject.ILifetime"/> factory that controls the lifetime of the registered service.</param>
            <param name="shouldRegister">A function delegate that determines if a service implementation should be registered.</param>
            <remarks>
            If the target <paramref name="assembly"/> contains an implementation of the <see cref="T:LightInject.ICompositionRoot"/> interface, this
            will be used to configure the container.
            </remarks>
        </member>
        <member name="M:LightInject.IServiceRegistry.RegisterFrom``1">
            <summary>
            Registers services from the given <typeparamref name="TCompositionRoot"/> type.
            </summary>
            <typeparam name="TCompositionRoot">The type of <see cref="T:LightInject.ICompositionRoot"/> to register from.</typeparam>
        </member>
        <member name="M:LightInject.IServiceRegistry.RegisterConstructorDependency``1(System.Func{LightInject.IServiceFactory,System.Reflection.ParameterInfo,``0})">
            <summary>
            Registers a factory delegate to be used when resolving a constructor dependency for
            a implicitly registered service.
            </summary>
            <typeparam name="TDependency">The dependency type.</typeparam>
            <param name="factory">The factory delegate used to create an instance of the dependency.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.RegisterPropertyDependency``1(System.Func{LightInject.IServiceFactory,System.Reflection.PropertyInfo,``0})">
            <summary>
            Registers a factory delegate to be used when resolving a constructor dependency for
            a implicitly registered service.
            </summary>
            <typeparam name="TDependency">The dependency type.</typeparam>
            <param name="factory">The factory delegate used to create an instance of the dependency.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Decorate(System.Type,System.Type,System.Func{LightInject.ServiceRegistration,System.Boolean})">
            <summary>
            Decorates the <paramref name="serviceType"/> with the given <paramref name="decoratorType"/>.
            </summary>
            <param name="serviceType">The target service type.</param>
            <param name="decoratorType">The decorator type used to decorate the <paramref name="serviceType"/>.</param>
            <param name="predicate">A function delegate that determines if the <paramref name="decoratorType"/>
            should be applied to the target <paramref name="serviceType"/>.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Decorate(System.Type,System.Type)">
            <summary>
            Decorates the <paramref name="serviceType"/> with the given <paramref name="decoratorType"/>.
            </summary>
            <param name="serviceType">The target service type.</param>
            <param name="decoratorType">The decorator type used to decorate the <paramref name="serviceType"/>.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Decorate``2">
            <summary>
            Decorates the <typeparamref name="TService"/> with the given <typeparamref name="TDecorator"/>.
            </summary>
            <typeparam name="TService">The target service type.</typeparam>
            <typeparam name="TDecorator">The decorator type used to decorate the <typeparamref name="TService"/>.</typeparam>
        </member>
        <member name="M:LightInject.IServiceRegistry.Decorate``1(System.Func{LightInject.IServiceFactory,``0,``0})">
            <summary>
            Decorates the <typeparamref name="TService"/> using the given decorator <paramref name="factory"/>.
            </summary>
            <typeparam name="TService">The target service type.</typeparam>
            <param name="factory">A factory delegate used to create a decorator instance.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Decorate(LightInject.DecoratorRegistration)">
            <summary>
            Registers a decorator based on a <see cref="T:LightInject.DecoratorRegistration"/> instance.
            </summary>
            <param name="decoratorRegistration">The <see cref="T:LightInject.DecoratorRegistration"/> instance that contains the decorator metadata.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Override(System.Func{LightInject.ServiceRegistration,System.Boolean},System.Func{LightInject.IServiceFactory,LightInject.ServiceRegistration,LightInject.ServiceRegistration})">
            <summary>
            Allows a registered service to be overridden by another <see cref="T:LightInject.ServiceRegistration"/>.
            </summary>
            <param name="serviceSelector">A function delegate that is used to determine the service that should be
            overridden using the <see cref="T:LightInject.ServiceRegistration"/> returned from the <paramref name="serviceRegistrationFactory"/>.</param>
            <param name="serviceRegistrationFactory">The factory delegate used to create a <see cref="T:LightInject.ServiceRegistration"/> that overrides
            the incoming <see cref="T:LightInject.ServiceRegistration"/>.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.Initialize(System.Func{LightInject.ServiceRegistration,System.Boolean},System.Action{LightInject.IServiceFactory,System.Object})">
            <summary>
            Allows post-processing of a service instance.
            </summary>
            <param name="predicate">A function delegate that determines if the given service can be post-processed.</param>
            <param name="processor">An action delegate that exposes the created service instance.</param>
        </member>
        <member name="M:LightInject.IServiceRegistry.SetDefaultLifetime``1">
            <summary>
            Sets the default lifetime for types registered without an explicit lifetime. Will only affect new registrations (after this call).
            </summary>
            <typeparam name="T">The default lifetime type</typeparam>
        </member>
        <member name="T:LightInject.IServiceFactory">
            <summary>
            Defines a set of methods used to retrieve service instances.
            </summary>
        </member>
        <member name="M:LightInject.IServiceFactory.BeginScope">
            <summary>
            Starts a new <see cref="T:LightInject.Scope"/>.
            </summary>
            <returns><see cref="T:LightInject.Scope"/></returns>
        </member>
        <member name="M:LightInject.IServiceFactory.EndCurrentScope">
            <summary>
            Ends the current <see cref="T:LightInject.Scope"/>.
            </summary>
        </member>
        <member name="M:LightInject.IServiceFactory.GetInstance(System.Type)">
            <summary>
            Gets an instance of the given <paramref name="serviceType"/>.
            </summary>
            <param name="serviceType">The type of the requested service.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.GetInstance(System.Type,System.Object[])">
            <summary>
            Gets an instance of the given <paramref name="serviceType"/>.
            </summary>
            <param name="serviceType">The type of the requested service.</param>
            <param name="arguments">The arguments to be passed to the target instance.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.GetInstance(System.Type,System.String,System.Object[])">
            <summary>
            Gets an instance of the given <paramref name="serviceType"/>.
            </summary>
            <param name="serviceType">The type of the requested service.</param>
            <param name="serviceName">The name of the requested service.</param>
            <param name="arguments">The arguments to be passed to the target instance.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.GetInstance(System.Type,System.String)">
            <summary>
            Gets a named instance of the given <paramref name="serviceType"/>.
            </summary>
            <param name="serviceType">The type of the requested service.</param>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.GetInstance``1">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/> type.
            </summary>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.GetInstance``1(System.String)">
            <summary>
            Gets a named instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.GetInstance``2(``0)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T">The type of the argument.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="value">The argument value.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.GetInstance``2(``0,System.String)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T">The type of the parameter.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="value">The argument value.</param>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.GetInstance``3(``0,``1)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="arg1">The first argument value.</param>
            <param name="arg2">The second argument value.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.GetInstance``3(``0,``1,System.String)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="arg1">The first argument value.</param>
            <param name="arg2">The second argument value.</param>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.GetInstance``4(``0,``1,``2)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="arg1">The first argument value.</param>
            <param name="arg2">The second argument value.</param>
            <param name="arg3">The third argument value.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.GetInstance``4(``0,``1,``2,System.String)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="arg1">The first argument value.</param>
            <param name="arg2">The second argument value.</param>
            <param name="arg3">The third argument value.</param>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.GetInstance``5(``0,``1,``2,``3)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="T4">The type of the fourth parameter.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="arg1">The first argument value.</param>
            <param name="arg2">The second argument value.</param>
            <param name="arg3">The third argument value.</param>
            <param name="arg4">The fourth argument value.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.GetInstance``5(``0,``1,``2,``3,System.String)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="T4">The type of the fourth parameter.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="arg1">The first argument value.</param>
            <param name="arg2">The second argument value.</param>
            <param name="arg3">The third argument value.</param>
            <param name="arg4">The fourth argument value.</param>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.TryGetInstance(System.Type)">
            <summary>
            Gets an instance of the given <paramref name="serviceType"/>.
            </summary>
            <param name="serviceType">The type of the requested service.</param>
            <returns>The requested service instance if available, otherwise null.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.TryGetInstance(System.Type,System.String)">
            <summary>
            Gets a named instance of the given <paramref name="serviceType"/>.
            </summary>
            <param name="serviceType">The type of the requested service.</param>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance if available, otherwise null.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.TryGetInstance``1">
            <summary>
            Tries to get an instance of the given <typeparamref name="TService"/> type.
            </summary>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <returns>The requested service instance if available, otherwise default(T).</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.TryGetInstance``1(System.String)">
            <summary>
            Tries to get an instance of the given <typeparamref name="TService"/> type.
            </summary>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance if available, otherwise default(T).</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.GetAllInstances(System.Type)">
            <summary>
            Gets all instances of the given <paramref name="serviceType"/>.
            </summary>
            <param name="serviceType">The type of services to resolve.</param>
            <returns>A list that contains all implementations of the <paramref name="serviceType"/>.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.GetAllInstances``1">
            <summary>
            Gets all instances of type <typeparamref name="TService"/>.
            </summary>
            <typeparam name="TService">The type of services to resolve.</typeparam>
            <returns>A list that contains all implementations of the <typeparamref name="TService"/> type.</returns>
        </member>
        <member name="M:LightInject.IServiceFactory.Create``1">
            <summary>
            Creates an instance of a concrete class.
            </summary>
            <typeparam name="TService">The type of class for which to create an instance.</typeparam>
            <returns>An instance of <typeparamref name="TService"/>.</returns>
            <remarks>The concrete type will be registered if not already registered with the container.</remarks>
        </member>
        <member name="M:LightInject.IServiceFactory.Create(System.Type)">
            <summary>
            Creates an instance of a concrete class.
            </summary>
            <param name="serviceType">The type of class for which to create an instance.</param>
            <returns>An instance of the <paramref name="serviceType"/>.</returns>
        </member>
        <member name="T:LightInject.IServiceContainer">
            <summary>
            Represents an inversion of control container.
            </summary>
        </member>
        <member name="P:LightInject.IServiceContainer.ScopeManagerProvider">
            <summary>
            Gets or sets the <see cref="T:LightInject.IScopeManagerProvider"/> that is responsible
            for providing the <see cref="T:LightInject.ScopeManager"/> used to manage scopes.
            </summary>
        </member>
        <member name="M:LightInject.IServiceContainer.CanGetInstance(System.Type,System.String)">
            <summary>
            Returns <b>true</b> if the container can create the requested service, otherwise <b>false</b>.
            </summary>
            <param name="serviceType">The <see cref="T:System.Type"/> of the service.</param>
            <param name="serviceName">The name of the service.</param>
            <returns><b>true</b> if the container can create the requested service, otherwise <b>false</b>.</returns>
        </member>
        <member name="M:LightInject.IServiceContainer.InjectProperties(System.Object)">
            <summary>
            Injects the property dependencies for a given <paramref name="instance"/>.
            </summary>
            <param name="instance">The target instance for which to inject its property dependencies.</param>
            <returns>The <paramref name="instance"/> with its property dependencies injected.</returns>
        </member>
        <member name="T:LightInject.ILifetime">
            <summary>
            Represents a class that manages the lifetime of a service instance.
            </summary>
        </member>
        <member name="M:LightInject.ILifetime.GetInstance(System.Func{System.Object},LightInject.Scope)">
            <summary>
            Returns a service instance according to the specific lifetime characteristics.
            </summary>
            <param name="createInstance">The function delegate used to create a new service instance.</param>
            <param name="scope">The <see cref="T:LightInject.Scope"/> of the current service request.</param>
            <returns>The requested services instance.</returns>
        </member>
        <member name="T:LightInject.ICompositionRoot">
            <summary>
            Represents a class that acts as a composition root for an <see cref="T:LightInject.IServiceRegistry"/> instance.
            </summary>
        </member>
        <member name="M:LightInject.ICompositionRoot.Compose(LightInject.IServiceRegistry)">
            <summary>
            Composes services by adding services to the <paramref name="serviceRegistry"/>.
            </summary>
            <param name="serviceRegistry">The target <see cref="T:LightInject.IServiceRegistry"/>.</param>
        </member>
        <member name="T:LightInject.ITypeExtractor">
            <summary>
            Represents a class that extracts a set of types from an <see cref="T:System.Reflection.Assembly"/>.
            </summary>
        </member>
        <member name="M:LightInject.ITypeExtractor.Execute(System.Reflection.Assembly)">
            <summary>
            Extracts types found in the given <paramref name="assembly"/>.
            </summary>
            <param name="assembly">The <see cref="T:System.Reflection.Assembly"/> for which to extract types.</param>
            <returns>A set of types found in the given <paramref name="assembly"/>.</returns>
        </member>
        <member name="T:LightInject.ICompositionRootAttributeExtractor">
            <summary>
            Represents a class that is capable of extracting
            attributes of type <see cref="T:LightInject.CompositionRootTypeAttribute"/> from an <see cref="T:System.Reflection.Assembly"/>.
            </summary>
        </member>
        <member name="M:LightInject.ICompositionRootAttributeExtractor.GetAttributes(System.Reflection.Assembly)">
            <summary>
            Gets a list of attributes of type <see cref="T:LightInject.CompositionRootTypeAttribute"/> from
            the given <paramref name="assembly"/>.
            </summary>
            <param name="assembly">The assembly from which to extract
            <see cref="T:LightInject.CompositionRootTypeAttribute"/> attributes.</param>
            <returns>A list of attributes of type <see cref="T:LightInject.CompositionRootTypeAttribute"/></returns>
        </member>
        <member name="T:LightInject.IPropertySelector">
            <summary>
            Represents a class that is responsible for selecting injectable properties.
            </summary>
        </member>
        <member name="M:LightInject.IPropertySelector.Execute(System.Type)">
            <summary>
            Selects properties that represents a dependency from the given <paramref name="type"/>.
            </summary>
            <param name="type">The <see cref="T:System.Type"/> for which to select the properties.</param>
            <returns>A list of injectable properties.</returns>
        </member>
        <member name="T:LightInject.IPropertyDependencySelector">
            <summary>
            Represents a class that is responsible for selecting the property dependencies for a given <see cref="T:System.Type"/>.
            </summary>
        </member>
        <member name="M:LightInject.IPropertyDependencySelector.Execute(System.Type)">
            <summary>
            Selects the property dependencies for the given <paramref name="type"/>.
            </summary>
            <param name="type">The <see cref="T:System.Type"/> for which to select the property dependencies.</param>
            <returns>A list of <see cref="T:LightInject.PropertyDependency"/> instances that represents the property
            dependencies for the given <paramref name="type"/>.</returns>
        </member>
        <member name="T:LightInject.IConstructorDependencySelector">
            <summary>
            Represents a class that is responsible for selecting the constructor dependencies for a given <see cref="T:System.Reflection.ConstructorInfo"/>.
            </summary>
        </member>
        <member name="M:LightInject.IConstructorDependencySelector.Execute(System.Reflection.ConstructorInfo)">
            <summary>
            Selects the constructor dependencies for the given <paramref name="constructor"/>.
            </summary>
            <param name="constructor">The <see cref="T:LightInject.ConstructionInfo"/> for which to select the constructor dependencies.</param>
            <returns>A list of <see cref="T:LightInject.ConstructorDependency"/> instances that represents the constructor
            dependencies for the given <paramref name="constructor"/>.</returns>
        </member>
        <member name="T:LightInject.IConstructionInfoBuilder">
            <summary>
            Represents a class that is capable of building a <see cref="T:System.Reflection.ConstructorInfo"/> instance
            based on a <see cref="T:LightInject.Registration"/>.
            </summary>
        </member>
        <member name="M:LightInject.IConstructionInfoBuilder.Execute(LightInject.Registration)">
            <summary>
            Returns a <see cref="T:LightInject.ConstructionInfo"/> instance based on the given <see cref="T:LightInject.Registration"/>.
            </summary>
            <param name="registration">The <see cref="T:LightInject.Registration"/> for which to return a <see cref="T:LightInject.ConstructionInfo"/> instance.</param>
            <returns>A <see cref="T:LightInject.ConstructionInfo"/> instance that describes how to create a service instance.</returns>
        </member>
        <member name="T:LightInject.IConstructionInfoProvider">
            <summary>
            Represents a class that keeps track of a <see cref="T:LightInject.ConstructionInfo"/> instance for each <see cref="T:LightInject.Registration"/>.
            </summary>
        </member>
        <member name="M:LightInject.IConstructionInfoProvider.GetConstructionInfo(LightInject.Registration)">
            <summary>
            Gets a <see cref="T:LightInject.ConstructionInfo"/> instance for the given <paramref name="registration"/>.
            </summary>
            <param name="registration">The <see cref="T:LightInject.Registration"/> for which to get a <see cref="T:LightInject.ConstructionInfo"/> instance.</param>
            <returns>The <see cref="T:LightInject.ConstructionInfo"/> instance that describes how to create an instance of the given <paramref name="registration"/>.</returns>
        </member>
        <member name="M:LightInject.IConstructionInfoProvider.Invalidate">
            <summary>
            Invalidates the <see cref="T:LightInject.IConstructionInfoProvider"/> and causes new <see cref="T:LightInject.ConstructionInfo"/> instances
            to be created when the <see cref="M:LightInject.IConstructionInfoProvider.GetConstructionInfo(LightInject.Registration)"/> method is called.
            </summary>
        </member>
        <member name="T:LightInject.ITypeConstructionInfoBuilder">
            <summary>
            Represents a class that builds a <see cref="T:LightInject.ConstructionInfo"/> instance based on the implementing <see cref="T:System.Type"/>.
            </summary>
        </member>
        <member name="M:LightInject.ITypeConstructionInfoBuilder.Execute(LightInject.Registration)">
            <summary>
            Analyzes the <paramref name="registration"/> and returns a <see cref="T:LightInject.ConstructionInfo"/> instance.
            </summary>
            <param name="registration">The <see cref="T:LightInject.Registration"/> that represents the implementing type to analyze.</param>
            <returns>A <see cref="T:LightInject.ConstructionInfo"/> instance.</returns>
        </member>
        <member name="T:LightInject.IConstructorSelector">
            <summary>
            Represents a class that selects the constructor to be used for creating a new service instance.
            </summary>
        </member>
        <member name="M:LightInject.IConstructorSelector.Execute(System.Type)">
            <summary>
            Selects the constructor to be used when creating a new instance of the <paramref name="implementingType"/>.
            </summary>
            <param name="implementingType">The <see cref="T:System.Type"/> for which to return a <see cref="T:LightInject.ConstructionInfo"/>.</param>
            <returns>A <see cref="T:LightInject.ConstructionInfo"/> instance that represents the constructor to be used
            when creating a new instance of the <paramref name="implementingType"/>.</returns>
        </member>
        <member name="T:LightInject.IAssemblyScanner">
            <summary>
            Represents a class that is capable of scanning an assembly and register services into an <see cref="T:LightInject.IServiceContainer"/> instance.
            </summary>
        </member>
        <member name="M:LightInject.IAssemblyScanner.Scan(System.Reflection.Assembly,LightInject.IServiceRegistry,System.Func{LightInject.ILifetime},System.Func{System.Type,System.Type,System.Boolean})">
            <summary>
            Scans the target <paramref name="assembly"/> and registers services found within the assembly.
            </summary>
            <param name="assembly">The <see cref="T:System.Reflection.Assembly"/> to scan.</param>
            <param name="serviceRegistry">The target <see cref="T:LightInject.IServiceRegistry"/> instance.</param>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
            <param name="shouldRegister">A function delegate that determines if a service implementation should be registered.</param>
        </member>
        <member name="M:LightInject.IAssemblyScanner.Scan(System.Reflection.Assembly,LightInject.IServiceRegistry)">
            <summary>
            Scans the target <paramref name="assembly"/> and executes composition roots found within the <see cref="T:System.Reflection.Assembly"/>.
            </summary>
            <param name="assembly">The <see cref="T:System.Reflection.Assembly"/> to scan.</param>
            <param name="serviceRegistry">The target <see cref="T:LightInject.IServiceRegistry"/> instance.</param>
        </member>
        <member name="T:LightInject.ICompositionRootExecutor">
            <summary>
            Represents a class that is responsible for instantiating and executing an <see cref="T:LightInject.ICompositionRoot"/>.
            </summary>
        </member>
        <member name="M:LightInject.ICompositionRootExecutor.Execute(System.Type)">
            <summary>
            Creates an instance of the <paramref name="compositionRootType"/> and executes the <see cref="M:LightInject.ICompositionRoot.Compose(LightInject.IServiceRegistry)"/> method.
            </summary>
            <param name="compositionRootType">The concrete <see cref="T:LightInject.ICompositionRoot"/> type to be instantiated and executed.</param>
        </member>
        <member name="T:LightInject.IEmitter">
            <summary>
            Represents an abstraction of the <see cref="T:System.Reflection.Emit.ILGenerator"/> class that provides information
            about the <see cref="T:System.Type"/> currently on the stack.
            </summary>
        </member>
        <member name="P:LightInject.IEmitter.StackType">
            <summary>
            Gets the <see cref="T:System.Type"/> currently on the stack.
            </summary>
        </member>
        <member name="P:LightInject.IEmitter.Instructions">
            <summary>
            Gets a list containing each <see cref="T:LightInject.Instruction"/> to be emitted into the dynamic method.
            </summary>
        </member>
        <member name="M:LightInject.IEmitter.Emit(System.Reflection.Emit.OpCode)">
            <summary>
            Puts the specified instruction onto the stream of instructions.
            </summary>
            <param name="code">The Microsoft Intermediate Language (MSIL) instruction to be put onto the stream.</param>
        </member>
        <member name="M:LightInject.IEmitter.Emit(System.Reflection.Emit.OpCode,System.Int32)">
            <summary>
            Puts the specified instruction and numerical argument onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="code">The MSIL instruction to be put onto the stream.</param>
            <param name="arg">The numerical argument pushed onto the stream immediately after the instruction.</param>
        </member>
        <member name="M:LightInject.IEmitter.Emit(System.Reflection.Emit.OpCode,System.SByte)">
            <summary>
            Puts the specified instruction and numerical argument onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="code">The MSIL instruction to be put onto the stream.</param>
            <param name="arg">The numerical argument pushed onto the stream immediately after the instruction.</param>
        </member>
        <member name="M:LightInject.IEmitter.Emit(System.Reflection.Emit.OpCode,System.Byte)">
            <summary>
            Puts the specified instruction and numerical argument onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="code">The MSIL instruction to be put onto the stream.</param>
            <param name="arg">The numerical argument pushed onto the stream immediately after the instruction.</param>
        </member>
        <member name="M:LightInject.IEmitter.Emit(System.Reflection.Emit.OpCode,System.Type)">
            <summary>
            Puts the specified instruction onto the Microsoft intermediate language (MSIL) stream followed by the metadata token for the given type.
            </summary>
            <param name="code">The MSIL instruction to be put onto the stream.</param>
            <param name="type">A <see cref="T:System.Type"/> representing the type metadata token.</param>
        </member>
        <member name="M:LightInject.IEmitter.Emit(System.Reflection.Emit.OpCode,System.Reflection.ConstructorInfo)">
            <summary>
            Puts the specified instruction and metadata token for the specified constructor onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="code">The MSIL instruction to be emitted onto the stream.</param>
            <param name="constructor">A <see cref="T:System.Reflection.ConstructorInfo"/> representing a constructor.</param>
        </member>
        <member name="M:LightInject.IEmitter.Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.LocalBuilder)">
            <summary>
            Puts the specified instruction onto the Microsoft intermediate language (MSIL) stream followed by the index of the given local variable.
            </summary>
            <param name="code">The MSIL instruction to be emitted onto the stream.</param>
            <param name="localBuilder">A local variable.</param>
        </member>
        <member name="M:LightInject.IEmitter.Emit(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo)">
            <summary>
            Puts the specified instruction onto the Microsoft intermediate language (MSIL) stream followed by the metadata token for the given method.
            </summary>
            <param name="code">The MSIL instruction to be emitted onto the stream.</param>
            <param name="methodInfo">A <see cref="T:System.Reflection.MethodInfo"/> representing a method.</param>
        </member>
        <member name="M:LightInject.IEmitter.DeclareLocal(System.Type)">
            <summary>
            Declares a local variable of the specified type.
            </summary>
            <param name="type">A <see cref="T:System.Type"/> object that represents the type of the local variable.</param>
            <returns>The declared local variable.</returns>
        </member>
        <member name="T:LightInject.IMethodSkeleton">
            <summary>
            Represents a dynamic method skeleton for emitting the code needed to resolve a service instance.
            </summary>
        </member>
        <member name="M:LightInject.IMethodSkeleton.GetEmitter">
            <summary>
            Gets the <see cref="T:LightInject.IEmitter"/> for the this dynamic method.
            </summary>
            <returns>The <see cref="T:LightInject.IEmitter"/> for this dynamic method.</returns>
        </member>
        <member name="M:LightInject.IMethodSkeleton.CreateDelegate(System.Type)">
            <summary>
            Completes the dynamic method and creates a delegate that can be used to execute it.
            </summary>
            <param name="delegateType">A delegate type whose signature matches that of the dynamic method.</param>
            <returns>A delegate of the specified type, which can be used to execute the dynamic method.</returns>
        </member>
        <member name="T:LightInject.IScopeManagerProvider">
            <summary>
            Represents a class that is capable of providing the current <see cref="T:LightInject.ScopeManager"/>.
            </summary>
        </member>
        <member name="M:LightInject.IScopeManagerProvider.GetScopeManager">
            <summary>
            Returns the <see cref="T:LightInject.ScopeManager"/> that is responsible for managing scopes.
            </summary>
            <returns>The <see cref="T:LightInject.ScopeManager"/> that is responsible for managing scopes.</returns>
        </member>
        <member name="T:LightInject.Ensure">
            <summary>
            Contains a set of helper method related to validating
            user input.
            </summary>
        </member>
        <member name="M:LightInject.Ensure.IsNotNull``1(``0,System.String)">
            <summary>
            Ensures that the given <paramref name="value"/> is not null.
            </summary>
            <typeparam name="T">The type of value to be validated.</typeparam>
            <param name="value">The value to be validated.</param>
            <param name="paramName">The name of the parameter from which the <paramref name="value"/> comes from.</param>
        </member>
        <member name="T:LightInject.ImmutableHashTableExtensions">
            <summary>
            Extends the <see cref="T:LightInject.ImmutableHashTable`2"/> class.
            </summary>
        </member>
        <member name="M:LightInject.ImmutableHashTableExtensions.Search``2(LightInject.ImmutableHashTable{``0,``1},``0)">
            <summary>
            Searches for a value using the given <paramref name="key"/>.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="hashTable">The target <see cref="T:LightInject.ImmutableHashTable`2"/> instance.</param>
            <param name="key">The key for which to search for a value.</param>
            <returns>If found, the <typeparamref name="TValue"/> with the given <paramref name="key"/>, otherwise the default <typeparamref name="TValue"/>.</returns>
        </member>
        <member name="M:LightInject.ImmutableHashTableExtensions.Search``1(LightInject.ImmutableHashTable{System.Type,``0},System.Type)">
            <summary>
            Searches for a value using the given <paramref name="key"/>.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="hashTable">The target <see cref="T:LightInject.ImmutableHashTable`2"/> instance.</param>
            <param name="key">The key for which to search for a value.</param>
            <returns>If found, the <typeparamref name="TValue"/> with the given <paramref name="key"/>, otherwise the default <typeparamref name="TValue"/>.</returns>
        </member>
        <member name="M:LightInject.ImmutableHashTableExtensions.Add``2(LightInject.ImmutableHashTable{``0,``1},``0,``1)">
            <summary>
            Adds a new element to the <see cref="T:LightInject.ImmutableHashTree`2"/>.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="hashTable">The target <see cref="T:LightInject.ImmutableHashTable`2"/>.</param>
            <param name="key">The key to be associated with the value.</param>
            <param name="value">The value to be added to the tree.</param>
            <returns>A new <see cref="T:LightInject.ImmutableHashTree`2"/> that contains the new key/value pair.</returns>
        </member>
        <member name="T:LightInject.ImmutableHashTreeExtensions">
            <summary>
            Extends the <see cref="T:LightInject.ImmutableHashTree`2"/> class.
            </summary>
        </member>
        <member name="M:LightInject.ImmutableHashTreeExtensions.Search``2(LightInject.ImmutableHashTree{``0,``1},``0)">
            <summary>
            Searches for a <typeparamref name="TValue"/> using the given <paramref name="key"/>.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="tree">The target <see cref="T:LightInject.ImmutableHashTree`2"/>.</param>
            <param name="key">The key of the <see cref="T:LightInject.ImmutableHashTree`2"/> to get.</param>
            <returns>If found, the <typeparamref name="TValue"/> with the given <paramref name="key"/>, otherwise the default <typeparamref name="TValue"/>.</returns>
        </member>
        <member name="M:LightInject.ImmutableHashTreeExtensions.Add``2(LightInject.ImmutableHashTree{``0,``1},``0,``1)">
            <summary>
            Adds a new element to the <see cref="T:LightInject.ImmutableHashTree`2"/>.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="tree">The target <see cref="T:LightInject.ImmutableHashTree`2"/>.</param>
            <param name="key">The key to be associated with the value.</param>
            <param name="value">The value to be added to the tree.</param>
            <returns>A new <see cref="T:LightInject.ImmutableHashTree`2"/> that contains the new key/value pair.</returns>
        </member>
        <member name="M:LightInject.ImmutableHashTreeExtensions.InOrder``2(LightInject.ImmutableHashTree{``0,``1})">
            <summary>
            Returns the nodes in the tree using in order traversal.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="hashTree">The target <see cref="T:LightInject.ImmutableHashTree`2"/>.</param>
            <returns>The nodes using in order traversal.</returns>
        </member>
        <member name="T:LightInject.TypeHelper">
            <summary>
            Contains a set of extension method that represents
            a compability layer for reflection methods.
            </summary>
        </member>
        <member name="M:LightInject.TypeHelper.IsEnumerableOfT(System.Type)">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is an <see cref="T:System.Collections.Generic.IEnumerable`1"/> type.
            </summary>
            <param name="type">The target <see cref="T:System.Type"/>.</param>
            <returns>true if the <see cref="T:System.Type"/> is an <see cref="T:System.Collections.Generic.IEnumerable`1"/>; otherwise, false.</returns>
        </member>
        <member name="M:LightInject.TypeHelper.IsListOfT(System.Type)">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is an <see cref="T:System.Collections.Generic.IList`1"/> type.
            </summary>
            <param name="type">The target <see cref="T:System.Type"/>.</param>
            <returns>true if the <see cref="T:System.Type"/> is an <see cref="T:System.Collections.Generic.IList`1"/>; otherwise, false.</returns>
        </member>
        <member name="M:LightInject.TypeHelper.IsCollectionOfT(System.Type)">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is an <see cref="T:System.Collections.Generic.ICollection`1"/> type.
            </summary>
            <param name="type">The target <see cref="T:System.Type"/>.</param>
            <returns>true if the <see cref="T:System.Type"/> is an <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false.</returns>
        </member>
        <member name="M:LightInject.TypeHelper.IsReadOnlyCollectionOfT(System.Type)">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is an <see cref="T:System.Collections.Generic.IReadOnlyCollection`1"/> type.
            </summary>
            <param name="type">The target <see cref="T:System.Type"/>.</param>
            <returns>true if the <see cref="T:System.Type"/> is an <see cref="T:System.Collections.Generic.IReadOnlyCollection`1"/>; otherwise, false.</returns>
        </member>
        <member name="M:LightInject.TypeHelper.IsReadOnlyListOfT(System.Type)">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is an <see cref="T:System.Collections.Generic.IReadOnlyList`1"/> type.
            </summary>
            <param name="type">The target <see cref="T:System.Type"/>.</param>
            <returns>true if the <see cref="T:System.Type"/> is an <see cref="T:System.Collections.Generic.IReadOnlyList`1"/>; otherwise, false.</returns>
        </member>
        <member name="M:LightInject.TypeHelper.IsLazy(System.Type)">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is an <see cref="T:System.Lazy`1"/> type.
            </summary>
            <param name="type">The target <see cref="T:System.Type"/>.</param>
            <returns>true if the <see cref="T:System.Type"/> is an <see cref="T:System.Lazy`1"/>; otherwise, false.</returns>
        </member>
        <member name="M:LightInject.TypeHelper.IsFunc(System.Type)">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is an <see cref="T:System.Func`1"/> type.
            </summary>
            <param name="type">The target <see cref="T:System.Type"/>.</param>
            <returns>true if the <see cref="T:System.Type"/> is an <see cref="T:System.Func`1"/>; otherwise, false.</returns>
        </member>
        <member name="M:LightInject.TypeHelper.IsFuncWithParameters(System.Type)">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is an <see cref="T:System.Func`2"/>,
            <see cref="T:System.Func`3"/>, <see cref="T:System.Func`4"/> or an <see cref="T:System.Func`5"/>.
            </summary>
            <param name="type">The target <see cref="T:System.Type"/>.</param>
            <returns>true if the <see cref="T:System.Type"/> is an <see cref="T:System.Func`2"/>, <see cref="T:System.Func`3"/>, <see cref="T:System.Func`4"/> or an <see cref="T:System.Func`5"/>; otherwise, false.</returns>
        </member>
        <member name="M:LightInject.TypeHelper.IsClosedGeneric(System.Type)">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is a closed generic type.
            </summary>
            <param name="type">The target <see cref="T:System.Type"/>.</param>
            <returns>true if the <see cref="T:System.Type"/> is a closed generic type; otherwise, false.</returns>
        </member>
        <member name="M:LightInject.TypeHelper.GetElementType(System.Type)">
            <summary>
            Returns the <see cref="T:System.Type"/> of the object encompassed or referred to by the current array, pointer or reference type.
            </summary>
            <param name="type">The target <see cref="T:System.Type"/>.</param>
            <returns>The <see cref="T:System.Type"/> of the object encompassed or referred to by the current array, pointer, or reference type,
            or null if the current Type is not an array or a pointer, or is not passed by reference,
            or represents a generic type or a type parameter in the definition of a generic type or generic method.</returns>
        </member>
        <member name="T:LightInject.EmitterExtensions">
            <summary>
            Extends the <see cref="T:LightInject.IEmitter"/> interface with a set of methods
            that optimizes and simplifies emitting MSIL instructions.
            </summary>
        </member>
        <member name="M:LightInject.EmitterExtensions.UnboxOrCast(LightInject.IEmitter,System.Type)">
            <summary>
            Performs a cast or unbox operation if the current <see cref="P:LightInject.IEmitter.StackType"/> is
            different from the given <paramref name="type"/>.
            </summary>
            <param name="emitter">The target <see cref="T:LightInject.IEmitter"/>.</param>
            <param name="type">The requested stack type.</param>
        </member>
        <member name="M:LightInject.EmitterExtensions.PushConstant(LightInject.IEmitter,System.Int32,System.Type)">
            <summary>
            Pushes a constant value onto the evaluation stack.
            </summary>
            <param name="emitter">The target <see cref="T:LightInject.IEmitter"/>.</param>
            <param name="index">The index of the constant value to be pushed onto the stack.</param>
            <param name="type">The requested stack type.</param>
        </member>
        <member name="M:LightInject.EmitterExtensions.PushConstant(LightInject.IEmitter,System.Int32)">
            <summary>
            Pushes a constant value onto the evaluation stack as a object reference.
            </summary>
            <param name="emitter">The target <see cref="T:LightInject.IEmitter"/>.</param>
            <param name="index">The index of the constant value to be pushed onto the stack.</param>
        </member>
        <member name="M:LightInject.EmitterExtensions.PushArrayElement(LightInject.IEmitter)">
            <summary>
            Pushes the element containing an object reference at a specified index onto the stack.
            </summary>
            <param name="emitter">The target <see cref="T:LightInject.IEmitter"/>.</param>
        </member>
        <member name="M:LightInject.EmitterExtensions.PushArguments(LightInject.IEmitter,System.Reflection.ParameterInfo[])">
            <summary>
            Pushes the arguments associated with a service request onto the stack.
            The arguments are found as an array in the last element of the constants array
            that is passed into the dynamic method.
            </summary>
            <param name="emitter">The target <see cref="T:LightInject.IEmitter"/>.</param>
            <param name="parameters">A list of <see cref="T:System.Reflection.ParameterInfo"/> instances that
            represent the arguments to be pushed onto the stack.</param>
        </member>
        <member name="M:LightInject.EmitterExtensions.Call(LightInject.IEmitter,System.Reflection.MethodInfo)">
            <summary>
            Calls a late-bound method on an object, pushing the return value onto the stack.
            </summary>
            <param name="emitter">The target <see cref="T:LightInject.IEmitter"/>.</param>
            <param name="methodInfo">The <see cref="T:System.Reflection.MethodInfo"/> that represents the method to be called.</param>
        </member>
        <member name="M:LightInject.EmitterExtensions.New(LightInject.IEmitter,System.Reflection.ConstructorInfo)">
            <summary>
            Pushes a new instance onto the stack.
            </summary>
            <param name="emitter">The target <see cref="T:LightInject.IEmitter"/>.</param>
            <param name="constructorInfo">The <see cref="T:LightInject.ConstructionInfo"/> that represent the object to be created.</param>
        </member>
        <member name="M:LightInject.EmitterExtensions.Push(LightInject.IEmitter,System.Reflection.Emit.LocalBuilder)">
            <summary>
            Pushes the given <paramref name="localBuilder"/> onto the stack.
            </summary>
            <param name="emitter">The target <see cref="T:LightInject.IEmitter"/>.</param>
            <param name="localBuilder">The <see cref="T:System.Reflection.Emit.LocalBuilder"/> to be pushed onto the stack.</param>
        </member>
        <member name="M:LightInject.EmitterExtensions.PushArgument(LightInject.IEmitter,System.Int32)">
            <summary>
            Pushes an argument with the given <paramref name="index"/> onto the stack.
            </summary>
            <param name="emitter">The target <see cref="T:LightInject.IEmitter"/>.</param>
            <param name="index">The index of the argument to be pushed onto the stack.</param>
        </member>
        <member name="M:LightInject.EmitterExtensions.Store(LightInject.IEmitter,System.Reflection.Emit.LocalBuilder)">
            <summary>
            Stores the value currently on top of the stack in the given <paramref name="localBuilder"/>.
            </summary>
            <param name="emitter">The target <see cref="T:LightInject.IEmitter"/>.</param>
            <param name="localBuilder">The <see cref="T:System.Reflection.Emit.LocalBuilder"/> for which the value is to be stored.</param>
        </member>
        <member name="M:LightInject.EmitterExtensions.PushNewArray(LightInject.IEmitter,System.Type)">
            <summary>
            Pushes a new array of the given <paramref name="elementType"/> onto the stack.
            </summary>
            <param name="emitter">The target <see cref="T:LightInject.IEmitter"/>.</param>
            <param name="elementType">The element <see cref="T:System.Type"/> of the new array.</param>
        </member>
        <member name="M:LightInject.EmitterExtensions.Push(LightInject.IEmitter,System.Int32)">
            <summary>
            Pushes an <see cref="T:System.Int32"/> value onto the stack.
            </summary>
            <param name="emitter">The target <see cref="T:LightInject.IEmitter"/>.</param>
            <param name="value">The <see cref="T:System.Int32"/> value to be pushed onto the stack.</param>
        </member>
        <member name="M:LightInject.EmitterExtensions.Cast(LightInject.IEmitter,System.Type)">
            <summary>
            Performs a cast of the value currently on top of the stack to the given <paramref name="type"/>.
            </summary>
            <param name="emitter">The target <see cref="T:LightInject.IEmitter"/>.</param>
            <param name="type">The <see cref="T:System.Type"/> for which the value will be casted into.</param>
        </member>
        <member name="M:LightInject.EmitterExtensions.Return(LightInject.IEmitter)">
            <summary>
            Returns from the current method.
            </summary>
            <param name="emitter">The target <see cref="T:LightInject.IEmitter"/>.</param>
        </member>
        <member name="T:LightInject.ContainerOptions">
            <summary>
            Represents a set of configurable options when creating a new instance of the container.
            </summary>
        </member>
        <member name="P:LightInject.ContainerOptions.Default">
            <summary>
            Gets the default <see cref="T:LightInject.ContainerOptions"/> used across all <see cref="T:LightInject.ServiceContainer"/> instances.
            </summary>
        </member>
        <member name="P:LightInject.ContainerOptions.EnableVariance">
            <summary>
            Gets or sets a value indicating whether variance is applied when resolving an <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            </summary>
            <remarks>
            The default value is true.
            </remarks>
        </member>
        <member name="T:LightInject.ServiceContainer">
            <summary>
            An ultra lightweight service container.
            </summary>
        </member>
        <member name="M:LightInject.ServiceContainer.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.ServiceContainer"/> class.
            </summary>
        </member>
        <member name="M:LightInject.ServiceContainer.#ctor(LightInject.ContainerOptions)">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.ServiceContainer"/> class.
            </summary>
            <param name="options">The <see cref="T:LightInject.ContainerOptions"/> instances that represents the configurable options.</param>
        </member>
        <member name="P:LightInject.ServiceContainer.ScopeManagerProvider">
            <summary>
            Gets or sets the <see cref="T:LightInject.IScopeManagerProvider"/> that is responsible
            for providing the <see cref="T:LightInject.ScopeManager"/> used to manage scopes.
            </summary>
        </member>
        <member name="P:LightInject.ServiceContainer.PropertyDependencySelector">
            <summary>
            Gets or sets the <see cref="T:LightInject.IPropertyDependencySelector"/> instance that
            is responsible for selecting the property dependencies for a given type.
            </summary>
        </member>
        <member name="P:LightInject.ServiceContainer.CompositionRootTypeExtractor">
            <summary>
            Gets or sets the <see cref="T:LightInject.ITypeExtractor"/> that is responsible
            for extracting composition roots types from an assembly.
            </summary>
        </member>
        <member name="P:LightInject.ServiceContainer.CompositionRootExecutor">
            <summary>
            Gets or sets the <see cref="T:LightInject.ICompositionRootExecutor"/> that is responsible
            for executing composition roots.
            </summary>
        </member>
        <member name="P:LightInject.ServiceContainer.ConstructorDependencySelector">
            <summary>
            Gets or sets the <see cref="T:LightInject.IConstructorDependencySelector"/> instance that
            is responsible for selecting the constructor dependencies for a given constructor.
            </summary>
        </member>
        <member name="P:LightInject.ServiceContainer.ConstructorSelector">
            <summary>
            Gets or sets the <see cref="T:LightInject.IConstructorSelector"/> instance that is responsible
            for selecting the constructor to be used when creating new service instances.
            </summary>
        </member>
        <member name="P:LightInject.ServiceContainer.AssemblyScanner">
            <summary>
            Gets or sets the <see cref="T:LightInject.IAssemblyScanner"/> instance that is responsible for scanning assemblies.
            </summary>
        </member>
        <member name="P:LightInject.ServiceContainer.AvailableServices">
            <summary>
            Gets a list of <see cref="T:LightInject.ServiceRegistration"/> instances that represents the registered services.
            </summary>
        </member>
        <member name="M:LightInject.ServiceContainer.CanGetInstance(System.Type,System.String)">
            <summary>
            Returns <b>true</b> if the container can create the requested service, otherwise <b>false</b>.
            </summary>
            <param name="serviceType">The <see cref="T:System.Type"/> of the service.</param>
            <param name="serviceName">The name of the service.</param>
            <returns><b>true</b> if the container can create the requested service, otherwise <b>false</b>.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.BeginScope">
            <summary>
            Starts a new <see cref="T:LightInject.Scope"/>.
            </summary>
            <returns><see cref="T:LightInject.Scope"/></returns>
        </member>
        <member name="M:LightInject.ServiceContainer.EndCurrentScope">
            <summary>
            Ends the current <see cref="T:LightInject.Scope"/>.
            </summary>
        </member>
        <member name="M:LightInject.ServiceContainer.InjectProperties(System.Object)">
            <summary>
            Injects the property dependencies for a given <paramref name="instance"/>.
            </summary>
            <param name="instance">The target instance for which to inject its property dependencies.</param>
            <returns>The <paramref name="instance"/> with its property dependencies injected.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``1(System.Func{LightInject.IServiceFactory,``0},System.String,LightInject.ILifetime)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">The lambdaExpression that describes the dependencies of the service.</param>
            <param name="serviceName">The name of the service.</param>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.RegisterFallback(System.Func{System.Type,System.String,System.Boolean},System.Func{LightInject.ServiceRequest,System.Object})">
            <summary>
            Registers a custom factory delegate used to create services that is otherwise unknown to the service container.
            </summary>
            <param name="predicate">Determines if the service can be created by the <paramref name="factory"/> delegate.</param>
            <param name="factory">Creates a service instance according to the <paramref name="predicate"/> predicate.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.RegisterFallback(System.Func{System.Type,System.String,System.Boolean},System.Func{LightInject.ServiceRequest,System.Object},LightInject.ILifetime)">
            <summary>
            Registers a custom factory delegate used to create services that is otherwise unknown to the service container.
            </summary>
            <param name="predicate">Determines if the service can be created by the <paramref name="factory"/> delegate.</param>
            <param name="factory">Creates a service instance according to the <paramref name="predicate"/> predicate.</param>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register(LightInject.ServiceRegistration)">
            <summary>
            Registers a service based on a <see cref="T:LightInject.ServiceRegistration"/> instance.
            </summary>
            <param name="serviceRegistration">The <see cref="T:LightInject.ServiceRegistration"/> instance that contains service metadata.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.RegisterAssembly(System.Reflection.Assembly)">
            <summary>
            Registers composition roots from the given <paramref name="assembly"/>.
            </summary>
            <param name="assembly">The assembly to be scanned for services.</param>
            <remarks>
            If the target <paramref name="assembly"/> contains an implementation of the <see cref="T:LightInject.ICompositionRoot"/> interface, this
            will be used to configure the container.
            </remarks>
        </member>
        <member name="M:LightInject.ServiceContainer.RegisterAssembly(System.Reflection.Assembly,System.Func{System.Type,System.Type,System.Boolean})">
            <summary>
            Registers services from the given <paramref name="assembly"/>.
            </summary>
            <param name="assembly">The assembly to be scanned for services.</param>
            <param name="shouldRegister">A function delegate that determines if a service implementation should be registered.</param>
            <remarks>
            If the target <paramref name="assembly"/> contains an implementation of the <see cref="T:LightInject.ICompositionRoot"/> interface, this
            will be used to configure the container.
            </remarks>
        </member>
        <member name="M:LightInject.ServiceContainer.RegisterAssembly(System.Reflection.Assembly,System.Func{LightInject.ILifetime})">
            <summary>
            Registers services from the given <paramref name="assembly"/>.
            </summary>
            <param name="assembly">The assembly to be scanned for services.</param>
            <param name="lifetimeFactory">The <see cref="T:LightInject.ILifetime"/> factory that controls the lifetime of the registered service.</param>
            <remarks>
            If the target <paramref name="assembly"/> contains an implementation of the <see cref="T:LightInject.ICompositionRoot"/> interface, this
            will be used to configure the container.
            </remarks>
        </member>
        <member name="M:LightInject.ServiceContainer.RegisterAssembly(System.Reflection.Assembly,System.Func{LightInject.ILifetime},System.Func{System.Type,System.Type,System.Boolean})">
            <summary>
            Registers services from the given <paramref name="assembly"/>.
            </summary>
            <param name="assembly">The assembly to be scanned for services.</param>
            <param name="lifetimeFactory">The <see cref="T:LightInject.ILifetime"/> factory that controls the lifetime of the registered service.</param>
            <param name="shouldRegister">A function delegate that determines if a service implementation should be registered.</param>
            <remarks>
            If the target <paramref name="assembly"/> contains an implementation of the <see cref="T:LightInject.ICompositionRoot"/> interface, this
            will be used to configure the container.
            </remarks>
        </member>
        <member name="M:LightInject.ServiceContainer.RegisterFrom``1">
            <summary>
            Registers services from the given <typeparamref name="TCompositionRoot"/> type.
            </summary>
            <typeparam name="TCompositionRoot">The type of <see cref="T:LightInject.ICompositionRoot"/> to register from.</typeparam>
        </member>
        <member name="M:LightInject.ServiceContainer.RegisterConstructorDependency``1(System.Func{LightInject.IServiceFactory,System.Reflection.ParameterInfo,``0})">
            <summary>
            Registers a factory delegate to be used when resolving a constructor dependency for
            a implicitly registered service.
            </summary>
            <typeparam name="TDependency">The dependency type.</typeparam>
            <param name="factory">The factory delegate used to create an instance of the dependency.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.RegisterPropertyDependency``1(System.Func{LightInject.IServiceFactory,System.Reflection.PropertyInfo,``0})">
            <summary>
            Registers a factory delegate to be used when resolving a constructor dependency for
            a implicitly registered service.
            </summary>
            <typeparam name="TDependency">The dependency type.</typeparam>
            <param name="factory">The factory delegate used to create an instance of the dependency.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Decorate(System.Type,System.Type,System.Func{LightInject.ServiceRegistration,System.Boolean})">
            <summary>
            Decorates the <paramref name="serviceType"/> with the given <paramref name="decoratorType"/>.
            </summary>
            <param name="serviceType">The target service type.</param>
            <param name="decoratorType">The decorator type used to decorate the <paramref name="serviceType"/>.</param>
            <param name="predicate">A function delegate that determines if the <paramref name="decoratorType"/>
            should be applied to the target <paramref name="serviceType"/>.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Decorate(System.Type,System.Type)">
            <summary>
            Decorates the <paramref name="serviceType"/> with the given <paramref name="decoratorType"/>.
            </summary>
            <param name="serviceType">The target service type.</param>
            <param name="decoratorType">The decorator type used to decorate the <paramref name="serviceType"/>.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Decorate``2">
            <summary>
            Decorates the <typeparamref name="TService"/> with the given <typeparamref name="TDecorator"/>.
            </summary>
            <typeparam name="TService">The target service type.</typeparam>
            <typeparam name="TDecorator">The decorator type used to decorate the <typeparamref name="TService"/>.</typeparam>
        </member>
        <member name="M:LightInject.ServiceContainer.Decorate``1(System.Func{LightInject.IServiceFactory,``0,``0})">
            <summary>
            Decorates the <typeparamref name="TService"/> using the given decorator <paramref name="factory"/>.
            </summary>
            <typeparam name="TService">The target service type.</typeparam>
            <param name="factory">A factory delegate used to create a decorator instance.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Decorate(LightInject.DecoratorRegistration)">
            <summary>
            Registers a decorator based on a <see cref="T:LightInject.DecoratorRegistration"/> instance.
            </summary>
            <param name="decoratorRegistration">The <see cref="T:LightInject.DecoratorRegistration"/> instance that contains the decorator metadata.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Override(System.Func{LightInject.ServiceRegistration,System.Boolean},System.Func{LightInject.IServiceFactory,LightInject.ServiceRegistration,LightInject.ServiceRegistration})">
            <summary>
            Allows a registered service to be overridden by another <see cref="T:LightInject.ServiceRegistration"/>.
            </summary>
            <param name="serviceSelector">A function delegate that is used to determine the service that should be
            overridden using the <see cref="T:LightInject.ServiceRegistration"/> returned from the <paramref name="serviceRegistrationFactory"/>.</param>
            <param name="serviceRegistrationFactory">The factory delegate used to create a <see cref="T:LightInject.ServiceRegistration"/> that overrides
            the incoming <see cref="T:LightInject.ServiceRegistration"/>.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Initialize(System.Func{LightInject.ServiceRegistration,System.Boolean},System.Action{LightInject.IServiceFactory,System.Object})">
            <summary>
            Allows post-processing of a service instance.
            </summary>
            <param name="predicate">A function delegate that determines if the given service can be post-processed.</param>
            <param name="processor">An action delegate that exposes the created service instance.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register(System.Type,System.Type,LightInject.ILifetime)">
            <summary>
            Registers the <paramref name="serviceType"/> with the <paramref name="implementingType"/>.
            </summary>
            <param name="serviceType">The service type to register.</param>
            <param name="implementingType">The implementing type.</param>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register(System.Type,System.Type,System.String,LightInject.ILifetime)">
            <summary>
            Registers the <paramref name="serviceType"/> with the <paramref name="implementingType"/>.
            </summary>
            <param name="serviceType">The service type to register.</param>
            <param name="implementingType">The implementing type.</param>
            <param name="serviceName">The name of the service.</param>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``2">
            <summary>
            Registers the <typeparamref name="TService"/> with the <typeparamref name="TImplementation"/>.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <typeparam name="TImplementation">The implementing type.</typeparam>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``2(LightInject.ILifetime)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <typeparamref name="TImplementation"/>.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <typeparam name="TImplementation">The implementing type.</typeparam>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``2(System.String)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <typeparamref name="TImplementation"/>.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <typeparam name="TImplementation">The implementing type.</typeparam>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``2(System.String,LightInject.ILifetime)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <typeparamref name="TImplementation"/>.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <typeparam name="TImplementation">The implementing type.</typeparam>
            <param name="serviceName">The name of the service.</param>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``1(System.Func{LightInject.IServiceFactory,``0},LightInject.ILifetime)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">The lambdaExpression that describes the dependencies of the service.</param>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``1(System.Func{LightInject.IServiceFactory,``0},System.String)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">The lambdaExpression that describes the dependencies of the service.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``1">
            <summary>
            Registers a concrete type as a service.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
        </member>
        <member name="M:LightInject.ServiceContainer.Register(System.Type)">
            <summary>
            Registers a concrete type as a service.
            </summary>
            <param name="serviceType">The concrete type to register.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register(System.Type,LightInject.ILifetime)">
            <summary>
            Registers a concrete type as a service.
            </summary>
            <param name="serviceType">The concrete type to register.</param>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``1(LightInject.ILifetime)">
            <summary>
            Registers a concrete type as a service.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="lifetime">The <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the registered service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.RegisterInstance``1(``0,System.String)">
            <summary>
            Registers the <typeparamref name="TService"/> with the given <paramref name="instance"/>.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="instance">The instance returned when this service is requested.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.RegisterInstance``1(``0)">
            <summary>
            Registers the <typeparamref name="TService"/> with the given <paramref name="instance"/>.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="instance">The instance returned when this service is requested.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.RegisterInstance(System.Type,System.Object)">
            <summary>
            Registers the <paramref name="serviceType"/> with the given <paramref name="instance"/>.
            </summary>
            <param name="serviceType">The service type to register.</param>
            <param name="instance">The instance returned when this service is requested.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.RegisterInstance(System.Type,System.Object,System.String)">
            <summary>
            Registers the <paramref name="serviceType"/> with the given <paramref name="instance"/>.
            </summary>
            <param name="serviceType">The service type to register.</param>
            <param name="instance">The instance returned when this service is requested.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``1(System.Func{LightInject.IServiceFactory,``0})">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">The lambdaExpression that describes the dependencies of the service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``2(System.Func{LightInject.IServiceFactory,``0,``1})">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T">The parameter type.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``2(System.Func{LightInject.IServiceFactory,``0,``1},System.String)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T">The parameter type.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``3(System.Func{LightInject.IServiceFactory,``0,``1,``2})">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``3(System.Func{LightInject.IServiceFactory,``0,``1,``2},System.String)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``4(System.Func{LightInject.IServiceFactory,``0,``1,``2,``3})">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``4(System.Func{LightInject.IServiceFactory,``0,``1,``2,``3},System.String)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``5(System.Func{LightInject.IServiceFactory,``0,``1,``2,``3,``4})">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="T4">The type of the fourth parameter.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register``5(System.Func{LightInject.IServiceFactory,``0,``1,``2,``3,``4},System.String)">
            <summary>
            Registers the <typeparamref name="TService"/> with the <paramref name="factory"/> that
            describes the dependencies of the service.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="T4">The type of the fourth parameter.</typeparam>
            <typeparam name="TService">The service type to register.</typeparam>
            <param name="factory">A factory delegate used to create the <typeparamref name="TService"/> instance.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register(System.Type,System.Type,System.String)">
            <summary>
            Registers the <paramref name="serviceType"/> with the <paramref name="implementingType"/>.
            </summary>
            <param name="serviceType">The service type to register.</param>
            <param name="implementingType">The implementing type.</param>
            <param name="serviceName">The name of the service.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.Register(System.Type,System.Type)">
            <summary>
            Registers the <paramref name="serviceType"/> with the <paramref name="implementingType"/>.
            </summary>
            <param name="serviceType">The service type to register.</param>
            <param name="implementingType">The implementing type.</param>
        </member>
        <member name="M:LightInject.ServiceContainer.GetInstance(System.Type)">
            <summary>
            Gets an instance of the given <paramref name="serviceType"/>.
            </summary>
            <param name="serviceType">The type of the requested service.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.GetInstance(System.Type,System.Object[])">
            <summary>
            Gets an instance of the given <paramref name="serviceType"/>.
            </summary>
            <param name="serviceType">The type of the requested service.</param>
            <param name="arguments">The arguments to be passed to the target instance.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.GetInstance(System.Type,System.String,System.Object[])">
            <summary>
            Gets an instance of the given <paramref name="serviceType"/>.
            </summary>
            <param name="serviceType">The type of the requested service.</param>
            <param name="serviceName">The name of the requested service.</param>
            <param name="arguments">The arguments to be passed to the target instance.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.GetInstance``1">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/> type.
            </summary>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.GetInstance``1(System.String)">
            <summary>
            Gets a named instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.GetInstance``2(``0)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T">The type of the argument.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="value">The argument value.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.GetInstance``2(``0,System.String)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T">The type of the parameter.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="value">The argument value.</param>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.GetInstance``3(``0,``1)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="arg1">The first argument value.</param>
            <param name="arg2">The second argument value.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.GetInstance``3(``0,``1,System.String)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="arg1">The first argument value.</param>
            <param name="arg2">The second argument value.</param>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.GetInstance``4(``0,``1,``2)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="arg1">The first argument value.</param>
            <param name="arg2">The second argument value.</param>
            <param name="arg3">The third argument value.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.GetInstance``4(``0,``1,``2,System.String)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="arg1">The first argument value.</param>
            <param name="arg2">The second argument value.</param>
            <param name="arg3">The third argument value.</param>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.GetInstance``5(``0,``1,``2,``3)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="T4">The type of the fourth parameter.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="arg1">The first argument value.</param>
            <param name="arg2">The second argument value.</param>
            <param name="arg3">The third argument value.</param>
            <param name="arg4">The fourth argument value.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.GetInstance``5(``0,``1,``2,``3,System.String)">
            <summary>
            Gets an instance of the given <typeparamref name="TService"/>.
            </summary>
            <typeparam name="T1">The type of the first parameter.</typeparam>
            <typeparam name="T2">The type of the second parameter.</typeparam>
            <typeparam name="T3">The type of the third parameter.</typeparam>
            <typeparam name="T4">The type of the fourth parameter.</typeparam>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="arg1">The first argument value.</param>
            <param name="arg2">The second argument value.</param>
            <param name="arg3">The third argument value.</param>
            <param name="arg4">The fourth argument value.</param>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.TryGetInstance(System.Type)">
            <summary>
            Gets an instance of the given <paramref name="serviceType"/>.
            </summary>
            <param name="serviceType">The type of the requested service.</param>
            <returns>The requested service instance if available, otherwise null.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.TryGetInstance(System.Type,System.String)">
            <summary>
            Gets a named instance of the given <paramref name="serviceType"/>.
            </summary>
            <param name="serviceType">The type of the requested service.</param>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance if available, otherwise null.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.TryGetInstance``1">
            <summary>
            Tries to get an instance of the given <typeparamref name="TService"/> type.
            </summary>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <returns>The requested service instance if available, otherwise default(T).</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.TryGetInstance``1(System.String)">
            <summary>
            Tries to get an instance of the given <typeparamref name="TService"/> type.
            </summary>
            <typeparam name="TService">The type of the requested service.</typeparam>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance if available, otherwise default(T).</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.GetInstance(System.Type,System.String)">
            <summary>
            Gets a named instance of the given <paramref name="serviceType"/>.
            </summary>
            <param name="serviceType">The type of the requested service.</param>
            <param name="serviceName">The name of the requested service.</param>
            <returns>The requested service instance.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.GetAllInstances(System.Type)">
            <summary>
            Gets all instances of the given <paramref name="serviceType"/>.
            </summary>
            <param name="serviceType">The type of services to resolve.</param>
            <returns>A list that contains all implementations of the <paramref name="serviceType"/>.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.GetAllInstances``1">
            <summary>
            Gets all instances of type <typeparamref name="TService"/>.
            </summary>
            <typeparam name="TService">The type of services to resolve.</typeparam>
            <returns>A list that contains all implementations of the <typeparamref name="TService"/> type.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.Create``1">
            <summary>
            Creates an instance of a concrete class.
            </summary>
            <typeparam name="TService">The type of class for which to create an instance.</typeparam>
            <returns>An instance of <typeparamref name="TService"/>.</returns>
            <remarks>The concrete type will be registered if not already registered with the container.</remarks>
        </member>
        <member name="M:LightInject.ServiceContainer.Create(System.Type)">
            <summary>
            Creates an instance of a concrete class.
            </summary>
            <param name="serviceType">The type of class for which to create an instance.</param>
            <returns>An instance of the <paramref name="serviceType"/>.</returns>
        </member>
        <member name="M:LightInject.ServiceContainer.SetDefaultLifetime``1">
            <summary>
            Sets the default lifetime for types registered without an explicit lifetime. Will only affect new registrations (after this call).
            </summary>
            <typeparam name="T">The default lifetime type</typeparam>
        </member>
        <member name="M:LightInject.ServiceContainer.Dispose">
            <summary>
            Disposes any services registered using the <see cref="T:LightInject.PerContainerLifetime"/>.
            </summary>
        </member>
        <member name="M:LightInject.ServiceContainer.Invalidate">
            <summary>
            Invalidates the container and causes the compiler to "recompile".
            </summary>
        </member>
        <member name="T:LightInject.PerThreadScopeManagerProvider">
            <summary>
            A <see cref="T:LightInject.IScopeManagerProvider"/> that provides a <see cref="T:LightInject.ScopeManager"/> per thread.
            </summary>
        </member>
        <member name="M:LightInject.PerThreadScopeManagerProvider.GetScopeManager">
            <summary>
            Returns the <see cref="T:LightInject.ScopeManager"/> that is responsible for managing scopes.
            </summary>
            <returns>The <see cref="T:LightInject.ScopeManager"/> that is responsible for managing scopes.</returns>
        </member>
        <member name="T:LightInject.PerLogicalCallContextScopeManagerProvider">
            <summary>
            A <see cref="T:LightInject.IScopeManagerProvider"/> that provides a <see cref="T:LightInject.ScopeManager"/> across
            async points.
            </summary>
        </member>
        <member name="M:LightInject.PerLogicalCallContextScopeManagerProvider.GetScopeManager">
            <summary>
            Returns the <see cref="T:LightInject.ScopeManager"/> that is responsible for managing scopes.
            </summary>
            <returns>The <see cref="T:LightInject.ScopeManager"/> that is responsible for managing scopes.</returns>
        </member>
        <member name="T:LightInject.ThreadSafeDictionary`2">
            <summary>
            A thread safe dictionary.
            </summary>
            <typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
            <typeparam name="TValue">The type of the values in the dictionary.</typeparam>
        </member>
        <member name="M:LightInject.ThreadSafeDictionary`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.ThreadSafeDictionary`2"/> class.
            </summary>
        </member>
        <member name="M:LightInject.ThreadSafeDictionary`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.ThreadSafeDictionary`2"/> class using the
            given <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing keys</param>
        </member>
        <member name="T:LightInject.MostResolvableConstructorSelector">
            <summary>
            Selects the <see cref="T:LightInject.ConstructionInfo"/> from a given type that represents the most resolvable constructor.
            </summary>
        </member>
        <member name="M:LightInject.MostResolvableConstructorSelector.#ctor(System.Func{System.Type,System.String,System.Boolean})">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.MostResolvableConstructorSelector"/> class.
            </summary>
            <param name="canGetInstance">A function delegate that determines if a service type can be resolved.</param>
        </member>
        <member name="M:LightInject.MostResolvableConstructorSelector.Execute(System.Type)">
            <summary>
            Selects the constructor to be used when creating a new instance of the <paramref name="implementingType"/>.
            </summary>
            <param name="implementingType">The <see cref="T:System.Type"/> for which to return a <see cref="T:LightInject.ConstructionInfo"/>.</param>
            <returns>A <see cref="T:LightInject.ConstructionInfo"/> instance that represents the constructor to be used
            when creating a new instance of the <paramref name="implementingType"/>.</returns>
        </member>
        <member name="M:LightInject.MostResolvableConstructorSelector.GetServiceName(System.Reflection.ParameterInfo)">
            <summary>
            Gets the service name based on the given <paramref name="parameter"/>.
            </summary>
            <param name="parameter">The <see cref="T:System.Reflection.ParameterInfo"/> for which to get the service name.</param>
            <returns>The name of the service for the given <paramref name="parameter"/>.</returns>
        </member>
        <member name="T:LightInject.ConstructorDependencySelector">
            <summary>
            Selects the constructor dependencies for a given <see cref="T:System.Reflection.ConstructorInfo"/>.
            </summary>
        </member>
        <member name="M:LightInject.ConstructorDependencySelector.Execute(System.Reflection.ConstructorInfo)">
            <summary>
            Selects the constructor dependencies for the given <paramref name="constructor"/>.
            </summary>
            <param name="constructor">The <see cref="T:LightInject.ConstructionInfo"/> for which to select the constructor dependencies.</param>
            <returns>A list of <see cref="T:LightInject.ConstructorDependency"/> instances that represents the constructor
            dependencies for the given <paramref name="constructor"/>.</returns>
        </member>
        <member name="T:LightInject.PropertyDependencySelector">
            <summary>
            Selects the property dependencies for a given <see cref="T:System.Type"/>.
            </summary>
        </member>
        <member name="M:LightInject.PropertyDependencySelector.#ctor(LightInject.IPropertySelector)">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.PropertyDependencySelector"/> class.
            </summary>
            <param name="propertySelector">The <see cref="T:LightInject.IPropertySelector"/> that is
            responsible for selecting a list of injectable properties.</param>
        </member>
        <member name="P:LightInject.PropertyDependencySelector.PropertySelector">
            <summary>
            Gets the <see cref="T:LightInject.IPropertySelector"/> that is responsible for selecting a
            list of injectable properties.
            </summary>
        </member>
        <member name="M:LightInject.PropertyDependencySelector.Execute(System.Type)">
            <summary>
            Selects the property dependencies for the given <paramref name="type"/>.
            </summary>
            <param name="type">The <see cref="T:System.Type"/> for which to select the property dependencies.</param>
            <returns>A list of <see cref="T:LightInject.PropertyDependency"/> instances that represents the property
            dependencies for the given <paramref name="type"/>.</returns>
        </member>
        <member name="T:LightInject.TypeConstructionInfoBuilder">
            <summary>
            Builds a <see cref="T:LightInject.ConstructionInfo"/> instance based on the implementing <see cref="T:System.Type"/>.
            </summary>
        </member>
        <member name="M:LightInject.TypeConstructionInfoBuilder.#ctor(LightInject.IConstructorSelector,LightInject.IConstructorDependencySelector,LightInject.IPropertyDependencySelector,System.Func{System.Type,System.String,System.Delegate},System.Func{System.Type,System.String,System.Delegate})">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.TypeConstructionInfoBuilder"/> class.
            </summary>
            <param name="constructorSelector">The <see cref="T:LightInject.IConstructorSelector"/> that is responsible
            for selecting the constructor to be used for constructor injection.</param>
            <param name="constructorDependencySelector">The <see cref="T:LightInject.IConstructorDependencySelector"/> that is
            responsible for selecting the constructor dependencies for a given <see cref="T:LightInject.ConstructionInfo"/>.</param>
            <param name="propertyDependencySelector">The <see cref="T:LightInject.IPropertyDependencySelector"/> that is responsible
            for selecting the property dependencies for a given <see cref="T:System.Type"/>.</param>
            <param name="getConstructorDependencyExpression">A function delegate that returns the registered constructor dependency expression, if any.</param>
            <param name="getPropertyDependencyExpression">A function delegate that returns the registered property dependency expression, if any.</param>
        </member>
        <member name="M:LightInject.TypeConstructionInfoBuilder.Execute(LightInject.Registration)">
            <summary>
            Analyzes the <paramref name="registration"/> and returns a <see cref="T:LightInject.ConstructionInfo"/> instance.
            </summary>
            <param name="registration">The <see cref="T:LightInject.Registration"/> that represents the implementing type to analyze.</param>
            <returns>A <see cref="T:LightInject.ConstructionInfo"/> instance.</returns>
        </member>
        <member name="T:LightInject.ConstructionInfoProvider">
            <summary>
            Keeps track of a <see cref="T:LightInject.ConstructionInfo"/> instance for each <see cref="T:LightInject.Registration"/>.
            </summary>
        </member>
        <member name="M:LightInject.ConstructionInfoProvider.#ctor(LightInject.IConstructionInfoBuilder)">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.ConstructionInfoProvider"/> class.
            </summary>
            <param name="constructionInfoBuilder">The <see cref="T:LightInject.IConstructionInfoBuilder"/> that
            is responsible for building a <see cref="T:LightInject.ConstructionInfo"/> instance based on a given <see cref="T:LightInject.Registration"/>.</param>
        </member>
        <member name="M:LightInject.ConstructionInfoProvider.GetConstructionInfo(LightInject.Registration)">
            <summary>
            Gets a <see cref="T:LightInject.ConstructionInfo"/> instance for the given <paramref name="registration"/>.
            </summary>
            <param name="registration">The <see cref="T:LightInject.Registration"/> for which to get a <see cref="T:LightInject.ConstructionInfo"/> instance.</param>
            <returns>The <see cref="T:LightInject.ConstructionInfo"/> instance that describes how to create an instance of the given <paramref name="registration"/>.</returns>
        </member>
        <member name="M:LightInject.ConstructionInfoProvider.Invalidate">
            <summary>
            Invalidates the <see cref="T:LightInject.IConstructionInfoProvider"/> and causes new <see cref="T:LightInject.ConstructionInfo"/> instances
            to be created when the <see cref="M:LightInject.IConstructionInfoProvider.GetConstructionInfo(LightInject.Registration)"/> method is called.
            </summary>
        </member>
        <member name="T:LightInject.ServiceRequest">
            <summary>
            Contains information about a service request that originates from a rule based service registration.
            </summary>
        </member>
        <member name="M:LightInject.ServiceRequest.#ctor(System.Type,System.String,LightInject.IServiceFactory)">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.ServiceRequest"/> class.
            </summary>
            <param name="serviceType">The <see cref="T:System.Type"/> of the requested service.</param>
            <param name="serviceName">The name of the requested service.</param>
            <param name="serviceFactory">The <see cref="T:LightInject.IServiceFactory"/> to be associated with this <see cref="T:LightInject.ServiceRequest"/>.</param>
        </member>
        <member name="P:LightInject.ServiceRequest.ServiceType">
            <summary>
            Gets the service type.
            </summary>
        </member>
        <member name="P:LightInject.ServiceRequest.ServiceName">
            <summary>
            Gets the service name.
            </summary>
        </member>
        <member name="P:LightInject.ServiceRequest.ServiceFactory">
            <summary>
            Gets the <see cref="T:LightInject.IServiceFactory"/> that is associated with this <see cref="T:LightInject.ServiceRequest"/>.
            </summary>
        </member>
        <member name="T:LightInject.Registration">
            <summary>
            Base class for concrete registrations within the service container.
            </summary>
        </member>
        <member name="P:LightInject.Registration.ServiceType">
            <summary>
            Gets or sets the service <see cref="T:System.Type"/>.
            </summary>
        </member>
        <member name="P:LightInject.Registration.ImplementingType">
            <summary>
            Gets or sets the <see cref="T:System.Type"/> that implements the <see cref="P:LightInject.Registration.ServiceType"/>.
            </summary>
        </member>
        <member name="P:LightInject.Registration.FactoryExpression">
            <summary>
            Gets or sets the <see cref="T:System.Linq.Expressions.LambdaExpression"/> used to create a service instance.
            </summary>
        </member>
        <member name="T:LightInject.DecoratorRegistration">
            <summary>
            Contains information about a registered decorator.
            </summary>
        </member>
        <member name="P:LightInject.DecoratorRegistration.CanDecorate">
            <summary>
            Gets or sets a function delegate that determines if the decorator can decorate the service
            represented by the supplied <see cref="T:LightInject.ServiceRegistration"/>.
            </summary>
        </member>
        <member name="P:LightInject.DecoratorRegistration.ImplementingTypeFactory">
            <summary>
            Gets or sets a <see cref="T:System.Lazy`1"/> that defers resolving of the decorators implementing type.
            </summary>
        </member>
        <member name="P:LightInject.DecoratorRegistration.Index">
            <summary>
            Gets or sets the index of this <see cref="T:LightInject.DecoratorRegistration"/>.
            </summary>
        </member>
        <member name="P:LightInject.DecoratorRegistration.HasDeferredImplementingType">
            <summary>
            Gets a value indicating whether this registration has a deferred implementing type.
            </summary>
        </member>
        <member name="T:LightInject.ServiceRegistration">
            <summary>
            Contains information about a registered service.
            </summary>
        </member>
        <member name="P:LightInject.ServiceRegistration.ServiceName">
            <summary>
            Gets or sets the name of the service.
            </summary>
        </member>
        <member name="P:LightInject.ServiceRegistration.Lifetime">
            <summary>
            Gets or sets the <see cref="T:LightInject.ILifetime"/> instance that controls the lifetime of the service.
            </summary>
        </member>
        <member name="P:LightInject.ServiceRegistration.Value">
            <summary>
            Gets or sets the value that represents the instance of the service.
            </summary>
        </member>
        <member name="P:LightInject.ServiceRegistration.IsReadOnly">
            <summary>
            Gets or sets a value indicating whether this <see cref="T:LightInject.ServiceRegistration"/> can be overridden
            by another registration.
            </summary>
        </member>
        <member name="M:LightInject.ServiceRegistration.GetHashCode">
            <summary>
            Serves as a hash function for a particular type.
            </summary>
            <returns>
            A hash code for the current <see cref="T:System.Object"/>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:LightInject.ServiceRegistration.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>.
            </summary>
            <returns>
            True if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>; otherwise, false.
            </returns>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:System.Object"/>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="T:LightInject.ConstructionInfo">
            <summary>
            Contains information about how to create a service instance.
            </summary>
        </member>
        <member name="M:LightInject.ConstructionInfo.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.ConstructionInfo"/> class.
            </summary>
        </member>
        <member name="P:LightInject.ConstructionInfo.ImplementingType">
            <summary>
            Gets or sets the implementing type that represents the concrete class to create.
            </summary>
        </member>
        <member name="P:LightInject.ConstructionInfo.Constructor">
            <summary>
            Gets or sets the <see cref="T:System.Reflection.ConstructorInfo"/> that is used to create a service instance.
            </summary>
        </member>
        <member name="P:LightInject.ConstructionInfo.PropertyDependencies">
            <summary>
            Gets a list of <see cref="T:LightInject.PropertyDependency"/> instances that represent
            the property dependencies for the target service instance.
            </summary>
        </member>
        <member name="P:LightInject.ConstructionInfo.ConstructorDependencies">
            <summary>
            Gets a list of <see cref="T:LightInject.ConstructorDependency"/> instances that represent
            the property dependencies for the target service instance.
            </summary>
        </member>
        <member name="P:LightInject.ConstructionInfo.FactoryDelegate">
            <summary>
            Gets or sets the function delegate to be used to create the service instance.
            </summary>
        </member>
        <member name="T:LightInject.Dependency">
            <summary>
            Represents a class dependency.
            </summary>
        </member>
        <member name="P:LightInject.Dependency.ServiceType">
            <summary>
            Gets or sets the service <see cref="T:System.Type"/> of the <see cref="T:LightInject.Dependency"/>.
            </summary>
        </member>
        <member name="P:LightInject.Dependency.ServiceName">
            <summary>
            Gets or sets the service name of the <see cref="T:LightInject.Dependency"/>.
            </summary>
        </member>
        <member name="P:LightInject.Dependency.FactoryExpression">
            <summary>
            Gets or sets the <see cref="P:LightInject.Dependency.FactoryExpression"/> that represent getting the value of the <see cref="T:LightInject.Dependency"/>.
            </summary>
        </member>
        <member name="P:LightInject.Dependency.Name">
            <summary>
            Gets the name of the dependency accessor.
            </summary>
        </member>
        <member name="P:LightInject.Dependency.IsRequired">
            <summary>
            Gets or sets a value indicating whether this dependency is required.
            </summary>
        </member>
        <member name="M:LightInject.Dependency.ToString">
            <summary>
            Returns textual information about the dependency.
            </summary>
            <returns>A string that describes the dependency.</returns>
        </member>
        <member name="T:LightInject.PropertyDependency">
            <summary>
            Represents a property dependency.
            </summary>
        </member>
        <member name="P:LightInject.PropertyDependency.Property">
            <summary>
            Gets or sets the <see cref="T:System.Reflection.MethodInfo"/> that is used to set the property value.
            </summary>
        </member>
        <member name="P:LightInject.PropertyDependency.Name">
            <summary>
            Gets the name of the dependency accessor.
            </summary>
        </member>
        <member name="M:LightInject.PropertyDependency.ToString">
            <summary>
            Returns textual information about the dependency.
            </summary>
            <returns>A string that describes the dependency.</returns>
        </member>
        <member name="T:LightInject.ConstructorDependency">
            <summary>
            Represents a constructor dependency.
            </summary>
        </member>
        <member name="P:LightInject.ConstructorDependency.Parameter">
            <summary>
            Gets or sets the <see cref="T:System.Reflection.ParameterInfo"/> for this <see cref="T:LightInject.ConstructorDependency"/>.
            </summary>
        </member>
        <member name="P:LightInject.ConstructorDependency.IsDecoratorTarget">
            <summary>
            Gets or sets a value indicating whether that this parameter represents
            the decoration target passed into a decorator instance.
            </summary>
        </member>
        <member name="P:LightInject.ConstructorDependency.Name">
            <summary>
            Gets the name of the dependency accessor.
            </summary>
        </member>
        <member name="M:LightInject.ConstructorDependency.ToString">
            <summary>
            Returns textual information about the dependency.
            </summary>
            <returns>A string that describes the dependency.</returns>
        </member>
        <member name="T:LightInject.PerContainerLifetime">
            <summary>
            Ensures that only one instance of a given service can exist within the current <see cref="T:LightInject.IServiceContainer"/>.
            </summary>
        </member>
        <member name="M:LightInject.PerContainerLifetime.GetInstance(System.Func{System.Object},LightInject.Scope)">
            <summary>
            Returns a service instance according to the specific lifetime characteristics.
            </summary>
            <param name="createInstance">The function delegate used to create a new service instance.</param>
            <param name="scope">The <see cref="T:LightInject.Scope"/> of the current service request.</param>
            <returns>The requested services instance.</returns>
        </member>
        <member name="M:LightInject.PerContainerLifetime.Dispose">
            <summary>
            Disposes the service instances managed by this <see cref="T:LightInject.PerContainerLifetime"/> instance.
            </summary>
        </member>
        <member name="T:LightInject.PerRequestLifeTime">
            <summary>
            Ensures that a new instance is created for each request in addition to tracking disposable instances.
            </summary>
        </member>
        <member name="M:LightInject.PerRequestLifeTime.GetInstance(System.Func{System.Object},LightInject.Scope)">
            <summary>
            Returns a service instance according to the specific lifetime characteristics.
            </summary>
            <param name="createInstance">The function delegate used to create a new service instance.</param>
            <param name="scope">The <see cref="T:LightInject.Scope"/> of the current service request.</param>
            <returns>The requested services instance.</returns>
        </member>
        <member name="T:LightInject.PerScopeLifetime">
            <summary>
            Ensures that only one service instance can exist within a given <see cref="T:LightInject.Scope"/>.
            </summary>
            <remarks>
            If the service instance implements <see cref="T:System.IDisposable"/>,
            it will be disposed when the <see cref="T:LightInject.Scope"/> ends.
            </remarks>
        </member>
        <member name="M:LightInject.PerScopeLifetime.GetInstance(System.Func{System.Object},LightInject.Scope)">
            <summary>
            Returns the same service instance within the current <see cref="T:LightInject.Scope"/>.
            </summary>
            <param name="createInstance">The function delegate used to create a new service instance.</param>
            <param name="scope">The <see cref="T:LightInject.Scope"/> of the current service request.</param>
            <returns>The requested services instance.</returns>
        </member>
        <member name="T:LightInject.ScopeManager">
            <summary>
            Manages a set of <see cref="T:LightInject.Scope"/> instances.
            </summary>
        </member>
        <member name="P:LightInject.ScopeManager.CurrentScope">
            <summary>
            Gets the current <see cref="T:LightInject.Scope"/>.
            </summary>
        </member>
        <member name="M:LightInject.ScopeManager.BeginScope">
            <summary>
            Starts a new <see cref="T:LightInject.Scope"/>.
            </summary>
            <returns>A new <see cref="T:LightInject.Scope"/>.</returns>
        </member>
        <member name="M:LightInject.ScopeManager.EndScope(LightInject.Scope)">
            <summary>
            Ends the given <paramref name="scope"/> and updates the <see cref="P:LightInject.ScopeManager.CurrentScope"/> property.
            </summary>
            <param name="scope">The scope that is completed.</param>
        </member>
        <member name="T:LightInject.Scope">
            <summary>
            Represents a scope.
            </summary>
        </member>
        <member name="M:LightInject.Scope.#ctor(LightInject.ScopeManager,LightInject.Scope)">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.Scope"/> class.
            </summary>
            <param name="scopeManager">The <see cref="F:LightInject.Scope.scopeManager"/> that manages this <see cref="T:LightInject.Scope"/>.</param>
            <param name="parentScope">The parent <see cref="T:LightInject.Scope"/>.</param>
        </member>
        <member name="E:LightInject.Scope.Completed">
            <summary>
            Raised when the <see cref="T:LightInject.Scope"/> is completed.
            </summary>
        </member>
        <member name="P:LightInject.Scope.ParentScope">
            <summary>
            Gets or sets the parent <see cref="T:LightInject.Scope"/>.
            </summary>
        </member>
        <member name="P:LightInject.Scope.ChildScope">
            <summary>
            Gets or sets the child <see cref="T:LightInject.Scope"/>.
            </summary>
        </member>
        <member name="M:LightInject.Scope.TrackInstance(System.IDisposable)">
            <summary>
            Registers the <paramref name="disposable"/> so that it is disposed when the scope is completed.
            </summary>
            <param name="disposable">The <see cref="T:System.IDisposable"/> object to register.</param>
        </member>
        <member name="M:LightInject.Scope.Dispose">
            <summary>
            Disposes all instances tracked by this scope.
            </summary>
        </member>
        <member name="T:LightInject.CompositionRootTypeAttribute">
            <summary>
            Used at the assembly level to describe the composition root(s) for the target assembly.
            </summary>
        </member>
        <member name="M:LightInject.CompositionRootTypeAttribute.#ctor(System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.CompositionRootTypeAttribute"/> class.
            </summary>
            <param name="compositionRootType">A <see cref="T:System.Type"/> that implements the <see cref="T:LightInject.ICompositionRoot"/> interface.</param>
        </member>
        <member name="P:LightInject.CompositionRootTypeAttribute.CompositionRootType">
            <summary>
            Gets the <see cref="T:System.Type"/> that implements the <see cref="T:LightInject.ICompositionRoot"/> interface.
            </summary>
        </member>
        <member name="T:LightInject.CompositionRootAttributeExtractor">
            <summary>
            A class that is capable of extracting attributes of type
            <see cref="T:LightInject.CompositionRootTypeAttribute"/> from an <see cref="T:System.Reflection.Assembly"/>.
            </summary>
        </member>
        <member name="M:LightInject.CompositionRootAttributeExtractor.GetAttributes(System.Reflection.Assembly)">
            <summary>
            Gets a list of attributes of type <see cref="T:LightInject.CompositionRootTypeAttribute"/> from
            the given <paramref name="assembly"/>.
            </summary>
            <param name="assembly">The assembly from which to extract
            <see cref="T:LightInject.CompositionRootTypeAttribute"/> attributes.</param>
            <returns>A list of attributes of type <see cref="T:LightInject.CompositionRootTypeAttribute"/></returns>
        </member>
        <member name="T:LightInject.CompositionRootTypeExtractor">
            <summary>
            Extracts concrete <see cref="T:LightInject.ICompositionRoot"/> implementations from an <see cref="T:System.Reflection.Assembly"/>.
            </summary>
        </member>
        <member name="M:LightInject.CompositionRootTypeExtractor.#ctor(LightInject.ICompositionRootAttributeExtractor)">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.CompositionRootTypeExtractor"/> class.
            </summary>
            <param name="compositionRootAttributeExtractor">The <see cref="T:LightInject.ICompositionRootAttributeExtractor"/>
            that is responsible for extracting attributes of type <see cref="T:LightInject.CompositionRootTypeAttribute"/> from
            a given <see cref="T:System.Reflection.Assembly"/>.</param>
        </member>
        <member name="M:LightInject.CompositionRootTypeExtractor.Execute(System.Reflection.Assembly)">
            <summary>
            Extracts concrete <see cref="T:LightInject.ICompositionRoot"/> implementations found in the given <paramref name="assembly"/>.
            </summary>
            <param name="assembly">The <see cref="T:System.Reflection.Assembly"/> for which to extract types.</param>
            <returns>A set of concrete <see cref="T:LightInject.ICompositionRoot"/> implementations found in the given <paramref name="assembly"/>.</returns>
        </member>
        <member name="T:LightInject.CachedTypeExtractor">
            <summary>
            A <see cref="T:LightInject.ITypeExtractor"/> cache decorator.
            </summary>
        </member>
        <member name="M:LightInject.CachedTypeExtractor.#ctor(LightInject.ITypeExtractor)">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.CachedTypeExtractor"/> class.
            </summary>
            <param name="typeExtractor">The target <see cref="T:LightInject.ITypeExtractor"/>.</param>
        </member>
        <member name="M:LightInject.CachedTypeExtractor.Execute(System.Reflection.Assembly)">
            <summary>
            Extracts types found in the given <paramref name="assembly"/>.
            </summary>
            <param name="assembly">The <see cref="T:System.Reflection.Assembly"/> for which to extract types.</param>
            <returns>A set of types found in the given <paramref name="assembly"/>.</returns>
        </member>
        <member name="T:LightInject.ConcreteTypeExtractor">
            <summary>
            Extracts concrete types from an <see cref="T:System.Reflection.Assembly"/>.
            </summary>
        </member>
        <member name="M:LightInject.ConcreteTypeExtractor.Execute(System.Reflection.Assembly)">
            <summary>
            Extracts concrete types found in the given <paramref name="assembly"/>.
            </summary>
            <param name="assembly">The <see cref="T:System.Reflection.Assembly"/> for which to extract types.</param>
            <returns>A set of concrete types found in the given <paramref name="assembly"/>.</returns>
        </member>
        <member name="T:LightInject.CompositionRootExecutor">
            <summary>
            A class that is responsible for instantiating and executing an <see cref="T:LightInject.ICompositionRoot"/>.
            </summary>
        </member>
        <member name="M:LightInject.CompositionRootExecutor.#ctor(LightInject.IServiceRegistry,System.Func{System.Type,LightInject.ICompositionRoot})">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.CompositionRootExecutor"/> class.
            </summary>
            <param name="serviceRegistry">The <see cref="T:LightInject.IServiceRegistry"/> to be configured by the <see cref="T:LightInject.ICompositionRoot"/>.</param>
            <param name="activator">The function delegate that is responsible for creating an instance of the <see cref="T:LightInject.ICompositionRoot"/>.</param>
        </member>
        <member name="M:LightInject.CompositionRootExecutor.Execute(System.Type)">
            <summary>
            Creates an instance of the <paramref name="compositionRootType"/> and executes the <see cref="M:LightInject.ICompositionRoot.Compose(LightInject.IServiceRegistry)"/> method.
            </summary>
            <param name="compositionRootType">The concrete <see cref="T:LightInject.ICompositionRoot"/> type to be instantiated and executed.</param>
        </member>
        <member name="T:LightInject.AssemblyScanner">
            <summary>
            An assembly scanner that registers services based on the types contained within an <see cref="T:System.Reflection.Assembly"/>.
            </summary>
        </member>
        <member name="M:LightInject.AssemblyScanner.#ctor(LightInject.ITypeExtractor,LightInject.ITypeExtractor,LightInject.ICompositionRootExecutor)">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.AssemblyScanner"/> class.
            </summary>
            <param name="concreteTypeExtractor">The <see cref="T:LightInject.ITypeExtractor"/> that is responsible for
            extracting concrete types from the assembly being scanned.</param>
            <param name="compositionRootTypeExtractor">The <see cref="T:LightInject.ITypeExtractor"/> that is responsible for
            extracting <see cref="T:LightInject.ICompositionRoot"/> implementations from the assembly being scanned.</param>
            <param name="compositionRootExecutor">The <see cref="T:LightInject.ICompositionRootExecutor"/> that is
            responsible for creating and executing an <see cref="T:LightInject.ICompositionRoot"/>.</param>
        </member>
        <member name="M:LightInject.AssemblyScanner.Scan(System.Reflection.Assembly,LightInject.IServiceRegistry,System.Func{LightInject.ILifetime},System.Func{System.Type,System.Type,System.Boolean})">
            <summary>
            Scans the target <paramref name="assembly"/> and registers services found within the assembly.
            </summary>
            <param name="assembly">The <see cref="T:System.Reflection.Assembly"/> to scan.</param>
            <param name="serviceRegistry">The target <see cref="T:LightInject.IServiceRegistry"/> instance.</param>
            <param name="lifetimeFactory">The <see cref="T:LightInject.ILifetime"/> factory that controls the lifetime of the registered service.</param>
            <param name="shouldRegister">A function delegate that determines if a service implementation should be registered.</param>
        </member>
        <member name="M:LightInject.AssemblyScanner.Scan(System.Reflection.Assembly,LightInject.IServiceRegistry)">
            <summary>
            Scans the target <paramref name="assembly"/> and executes composition roots found within the <see cref="T:System.Reflection.Assembly"/>.
            </summary>
            <param name="assembly">The <see cref="T:System.Reflection.Assembly"/> to scan.</param>
            <param name="serviceRegistry">The target <see cref="T:LightInject.IServiceRegistry"/> instance.</param>
        </member>
        <member name="T:LightInject.PropertySelector">
            <summary>
            Selects the properties that represents a dependency to the target <see cref="T:System.Type"/>.
            </summary>
        </member>
        <member name="M:LightInject.PropertySelector.Execute(System.Type)">
            <summary>
            Selects properties that represents a dependency from the given <paramref name="type"/>.
            </summary>
            <param name="type">The <see cref="T:System.Type"/> for which to select the properties.</param>
            <returns>A list of properties that represents a dependency to the target <paramref name="type"/></returns>
        </member>
        <member name="M:LightInject.PropertySelector.IsInjectable(System.Reflection.PropertyInfo)">
            <summary>
            Determines if the <paramref name="propertyInfo"/> represents an injectable property.
            </summary>
            <param name="propertyInfo">The <see cref="T:System.Reflection.PropertyInfo"/> that describes the target property.</param>
            <returns><b>true</b> if the property is injectable, otherwise <b>false</b>.</returns>
        </member>
        <member name="T:LightInject.KeyValue`2">
            <summary>
            Defines an immutable representation of a key and a value.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
        </member>
        <member name="F:LightInject.KeyValue`2.Key">
            <summary>
            The key of this <see cref="T:LightInject.KeyValue`2"/> instance.
            </summary>
        </member>
        <member name="F:LightInject.KeyValue`2.Value">
            <summary>
            The key of this <see cref="T:LightInject.KeyValue`2"/> instance.
            </summary>
        </member>
        <member name="M:LightInject.KeyValue`2.#ctor(`0,`1)">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.KeyValue`2"/> class.
            </summary>
            <param name="key">The key of this <see cref="T:LightInject.KeyValue`2"/> instance.</param>
            <param name="value">The value of this <see cref="T:LightInject.KeyValue`2"/> instance.</param>
        </member>
        <member name="T:LightInject.ImmutableList`1">
            <summary>
            Represents a simple "add only" immutable list.
            </summary>
            <typeparam name="T">The type of items contained in the list.</typeparam>
        </member>
        <member name="F:LightInject.ImmutableList`1.Empty">
            <summary>
            Represents an empty <see cref="T:LightInject.ImmutableList`1"/>.
            </summary>
        </member>
        <member name="F:LightInject.ImmutableList`1.Items">
            <summary>
            An array that contains the items in the <see cref="T:LightInject.ImmutableList`1"/>.
            </summary>
        </member>
        <member name="F:LightInject.ImmutableList`1.Count">
            <summary>
            The number of items in the <see cref="T:LightInject.ImmutableList`1"/>.
            </summary>
        </member>
        <member name="M:LightInject.ImmutableList`1.#ctor(LightInject.ImmutableList{`0},`0)">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.ImmutableList`1"/> class.
            </summary>
            <param name="previousList">The list from which the previous items are copied.</param>
            <param name="value">The value to be added to the list.</param>
        </member>
        <member name="M:LightInject.ImmutableList`1.Add(`0)">
            <summary>
            Creates a new <see cref="T:LightInject.ImmutableList`1"/> that contains the new <paramref name="value"/>.
            </summary>
            <param name="value">The value to be added to the new list.</param>
            <returns>A new <see cref="T:LightInject.ImmutableList`1"/> that contains the new <paramref name="value"/>.</returns>
        </member>
        <member name="T:LightInject.ImmutableHashTable`2">
            <summary>
            A simple immutable add-only hash table.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
        </member>
        <member name="F:LightInject.ImmutableHashTable`2.Empty">
            <summary>
            An empty <see cref="T:LightInject.ImmutableHashTree`2"/>.
            </summary>
        </member>
        <member name="F:LightInject.ImmutableHashTable`2.Count">
            <summary>
            Gets the number of items stored in the hash table.
            </summary>
        </member>
        <member name="F:LightInject.ImmutableHashTable`2.Buckets">
            <summary>
            Gets the hast table buckets.
            </summary>
        </member>
        <member name="F:LightInject.ImmutableHashTable`2.Divisor">
            <summary>
            Gets the divisor used to calculate the bucket index from the hash code of the key.
            </summary>
        </member>
        <member name="M:LightInject.ImmutableHashTable`2.#ctor(LightInject.ImmutableHashTable{`0,`1},`0,`1)">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.ImmutableHashTable`2"/> class.
            </summary>
            <param name="previous">The "previous" hash table that contains already existing values.</param>
            <param name="key">The key to be associated with the value.</param>
            <param name="value">The value to be added to the tree.</param>
        </member>
        <member name="M:LightInject.ImmutableHashTable`2.#ctor">
            <summary>
            Prevents a default instance of the <see cref="T:LightInject.ImmutableHashTable`2"/> class from being created.
            </summary>
        </member>
        <member name="T:LightInject.ImmutableHashTree`2">
            <summary>
            A balanced binary search tree implemented as an AVL tree.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
        </member>
        <member name="F:LightInject.ImmutableHashTree`2.Empty">
            <summary>
            An empty <see cref="T:LightInject.ImmutableHashTree`2"/>.
            </summary>
        </member>
        <member name="F:LightInject.ImmutableHashTree`2.Key">
            <summary>
            The key of this <see cref="T:LightInject.ImmutableHashTree`2"/>.
            </summary>
        </member>
        <member name="F:LightInject.ImmutableHashTree`2.Value">
            <summary>
            The value of this <see cref="T:LightInject.ImmutableHashTree`2"/>.
            </summary>
        </member>
        <member name="F:LightInject.ImmutableHashTree`2.Duplicates">
            <summary>
            The list of <see cref="T:LightInject.KeyValue`2"/> instances where the
            <see cref="F:LightInject.KeyValue`2.Key"/> has the same hash code as this <see cref="T:LightInject.ImmutableHashTree`2"/>.
            </summary>
        </member>
        <member name="F:LightInject.ImmutableHashTree`2.HashCode">
            <summary>
            The hash code retrieved from the <see cref="F:LightInject.ImmutableHashTree`2.Key"/>.
            </summary>
        </member>
        <member name="F:LightInject.ImmutableHashTree`2.Left">
            <summary>
            The left node of this <see cref="T:LightInject.ImmutableHashTree`2"/>.
            </summary>
        </member>
        <member name="F:LightInject.ImmutableHashTree`2.Right">
            <summary>
            The right node of this <see cref="T:LightInject.ImmutableHashTree`2"/>.
            </summary>
        </member>
        <member name="F:LightInject.ImmutableHashTree`2.Height">
            <summary>
            The height of this node.
            </summary>
            <remarks>
            An empty node has a height of 0 and a node without children has a height of 1.
            </remarks>
        </member>
        <member name="F:LightInject.ImmutableHashTree`2.IsEmpty">
            <summary>
            Indicates that this <see cref="T:LightInject.ImmutableHashTree`2"/> is empty.
            </summary>
        </member>
        <member name="M:LightInject.ImmutableHashTree`2.#ctor(`0,`1,LightInject.ImmutableHashTree{`0,`1})">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.ImmutableHashTree`2"/> class
            and adds a new entry in the <see cref="F:LightInject.ImmutableHashTree`2.Duplicates"/> list.
            </summary>
            <param name="key">The key for this node.</param>
            <param name="value">The value for this node.</param>
            <param name="hashTree">The <see cref="T:LightInject.ImmutableHashTree`2"/> that contains existing duplicates.</param>
        </member>
        <member name="M:LightInject.ImmutableHashTree`2.#ctor(`0,`1,LightInject.ImmutableHashTree{`0,`1},LightInject.ImmutableHashTree{`0,`1})">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.ImmutableHashTree`2"/> class.
            </summary>
            <param name="key">The key for this node.</param>
            <param name="value">The value for this node.</param>
            <param name="left">The left node.</param>
            <param name="right">The right node.</param>
        </member>
        <member name="T:LightInject.Instruction">
            <summary>
            Represents an MSIL instruction to be emitted into a dynamic method.
            </summary>
        </member>
        <member name="M:LightInject.Instruction.#ctor(System.Reflection.Emit.OpCode,System.Action{System.Reflection.Emit.ILGenerator})">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.Instruction"/> class.
            </summary>
            <param name="code">The <see cref="T:System.Reflection.Emit.OpCode"/> to be emitted.</param>
            <param name="emitAction">The action to be performed against an <see cref="T:System.Reflection.Emit.ILGenerator"/>
            when this <see cref="T:LightInject.Instruction"/> is emitted.</param>
        </member>
        <member name="P:LightInject.Instruction.Code">
            <summary>
            Gets the <see cref="T:System.Reflection.Emit.OpCode"/> to be emitted.
            </summary>
        </member>
        <member name="P:LightInject.Instruction.Emit">
            <summary>
            Gets the action to be performed against an <see cref="T:System.Reflection.Emit.ILGenerator"/>
            when this <see cref="T:LightInject.Instruction"/> is emitted.
            </summary>
        </member>
        <member name="M:LightInject.Instruction.ToString">
            <summary>
            Returns the string representation of an <see cref="T:LightInject.Instruction"/>.
            </summary>
            <returns>The string representation of an <see cref="T:LightInject.Instruction"/>.</returns>
        </member>
        <member name="T:LightInject.Instruction`1">
            <summary>
            Represents an MSIL instruction to be emitted into a dynamic method.
            </summary>
            <typeparam name="T">The type of argument used in this instruction.</typeparam>
        </member>
        <member name="M:LightInject.Instruction`1.#ctor(System.Reflection.Emit.OpCode,`0,System.Action{System.Reflection.Emit.ILGenerator})">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.Instruction`1"/> class.
            </summary>
            <param name="code">The <see cref="T:System.Reflection.Emit.OpCode"/> to be emitted.</param>
            <param name="argument">The argument be passed along with the given <paramref name="code"/>.</param>
            <param name="emitAction">The action to be performed against an <see cref="T:System.Reflection.Emit.ILGenerator"/>
            when this <see cref="T:LightInject.Instruction"/> is emitted.</param>
        </member>
        <member name="P:LightInject.Instruction`1.Argument">
            <summary>
            Gets the argument be passed along with the given <see cref="P:LightInject.Instruction.Code"/>.
            </summary>
        </member>
        <member name="M:LightInject.Instruction`1.ToString">
            <summary>
            Returns the string representation of an <see cref="T:LightInject.Instruction`1"/>.
            </summary>
            <returns>The string representation of an <see cref="T:LightInject.Instruction`1"/>.</returns>
        </member>
        <member name="T:LightInject.Emitter">
            <summary>
            An abstraction of the <see cref="T:System.Reflection.Emit.ILGenerator"/> class that provides information
            about the <see cref="T:System.Type"/> currently on the stack.
            </summary>
        </member>
        <member name="M:LightInject.Emitter.#ctor(System.Reflection.Emit.ILGenerator,System.Type[])">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.Emitter"/> class.
            </summary>
            <param name="generator">The <see cref="T:System.Reflection.Emit.ILGenerator"/> used to emit MSIL instructions.</param>
            <param name="parameterTypes">The list of parameter types used by the current dynamic method.</param>
        </member>
        <member name="P:LightInject.Emitter.StackType">
            <summary>
            Gets the <see cref="T:System.Type"/> currently on the stack.
            </summary>
        </member>
        <member name="P:LightInject.Emitter.Instructions">
            <summary>
            Gets a list containing each <see cref="T:LightInject.Instruction"/> to be emitted into the dynamic method.
            </summary>
        </member>
        <member name="M:LightInject.Emitter.Emit(System.Reflection.Emit.OpCode)">
            <summary>
            Puts the specified instruction onto the stream of instructions.
            </summary>
            <param name="code">The Microsoft Intermediate Language (MSIL) instruction to be put onto the stream.</param>
        </member>
        <member name="M:LightInject.Emitter.Emit(System.Reflection.Emit.OpCode,System.Int32)">
            <summary>
            Puts the specified instruction and numerical argument onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="code">The MSIL instruction to be put onto the stream.</param>
            <param name="arg">The numerical argument pushed onto the stream immediately after the instruction.</param>
        </member>
        <member name="M:LightInject.Emitter.Emit(System.Reflection.Emit.OpCode,System.SByte)">
            <summary>
            Puts the specified instruction and numerical argument onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="code">The MSIL instruction to be put onto the stream.</param>
            <param name="arg">The numerical argument pushed onto the stream immediately after the instruction.</param>
        </member>
        <member name="M:LightInject.Emitter.Emit(System.Reflection.Emit.OpCode,System.Byte)">
            <summary>
            Puts the specified instruction and numerical argument onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="code">The MSIL instruction to be put onto the stream.</param>
            <param name="arg">The numerical argument pushed onto the stream immediately after the instruction.</param>
        </member>
        <member name="M:LightInject.Emitter.Emit(System.Reflection.Emit.OpCode,System.Type)">
            <summary>
            Puts the specified instruction onto the Microsoft intermediate language (MSIL) stream followed by the metadata token for the given type.
            </summary>
            <param name="code">The MSIL instruction to be put onto the stream.</param>
            <param name="type">A <see cref="T:System.Type"/> representing the type metadata token.</param>
        </member>
        <member name="M:LightInject.Emitter.Emit(System.Reflection.Emit.OpCode,System.Reflection.ConstructorInfo)">
            <summary>
            Puts the specified instruction and metadata token for the specified constructor onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="code">The MSIL instruction to be emitted onto the stream.</param>
            <param name="constructor">A <see cref="T:System.Reflection.ConstructorInfo"/> representing a constructor.</param>
        </member>
        <member name="M:LightInject.Emitter.Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.LocalBuilder)">
            <summary>
            Puts the specified instruction onto the Microsoft intermediate language (MSIL) stream followed by the index of the given local variable.
            </summary>
            <param name="code">The MSIL instruction to be emitted onto the stream.</param>
            <param name="localBuilder">A local variable.</param>
        </member>
        <member name="M:LightInject.Emitter.Emit(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo)">
            <summary>
            Puts the specified instruction onto the Microsoft intermediate language (MSIL) stream followed by the metadata token for the given method.
            </summary>
            <param name="code">The MSIL instruction to be emitted onto the stream.</param>
            <param name="methodInfo">A <see cref="T:System.Reflection.MethodInfo"/> representing a method.</param>
        </member>
        <member name="M:LightInject.Emitter.DeclareLocal(System.Type)">
            <summary>
            Declares a local variable of the specified type.
            </summary>
            <param name="type">A <see cref="T:System.Type"/> object that represents the type of the local variable.</param>
            <returns>The declared local variable.</returns>
        </member>
        <member name="T:LightInject.LogicalThreadStorage`1">
            <summary>
            Provides storage per logical thread of execution.
            </summary>
            <typeparam name="T">The type of the value contained in this <see cref="T:LightInject.LogicalThreadStorage`1"/>.</typeparam>
        </member>
        <member name="M:LightInject.LogicalThreadStorage`1.#ctor(System.Func{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:LightInject.LogicalThreadStorage`1"/> class.
            </summary>
            <param name="valueFactory">The value factory used to create an instance of <typeparamref name="T"/>.</param>
        </member>
        <member name="P:LightInject.LogicalThreadStorage`1.Value">
            <summary>
            Gets the value for the current logical thread of execution.
            </summary>
            <value>
            The value for the current logical thread of execution.
            </value>
        </member>
    </members>
</doc>