Commits

Christian Specht  committed 719cd01 Draft

now with IoC (Autofac)

  • Participants
  • Parent commits 444d0a5

Comments (0)

Files changed (19)

File src/MissileSharp.Launcher/App.xaml.cs

 using System.Windows;
+using Autofac;
 using MissileSharp.Launcher.Services;
 using MissileSharp.Launcher.ViewModels;
 
         {
             base.OnStartup(e);
 
+            var builder = new ContainerBuilder();
+            builder.RegisterType<MainWindowViewModel>();
+            builder.RegisterType<ConfigService>().As<IConfigService>();
+            var container = builder.Build();
+
             var window = new MainWindow();
-            var viewmodel = new MainWindowViewModel(new ConfigService());
+            var viewmodel = container.Resolve<MainWindowViewModel>();
             window.DataContext = viewmodel;
             window.Show();
         }

File src/MissileSharp.Launcher/MissileSharp.Launcher.csproj

     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="Autofac">
+      <HintPath>..\packages\Autofac.2.6.3.862\lib\NET40\Autofac.dll</HintPath>
+    </Reference>
+    <Reference Include="Autofac.Configuration">
+      <HintPath>..\packages\Autofac.2.6.3.862\lib\NET40\Autofac.Configuration.dll</HintPath>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Data" />
     <Reference Include="System.Xml" />
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
   </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.

File src/MissileSharp.Launcher/packages.config

+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Autofac" version="2.6.3.862" />
+</packages>

File src/packages/Autofac.2.6.3.862/Autofac.2.6.3.862.nupkg

Binary file added.

File src/packages/Autofac.2.6.3.862/lib/NET35/Autofac.Configuration.dll

Binary file added.

File src/packages/Autofac.2.6.3.862/lib/NET35/Autofac.dll

Binary file added.

File src/packages/Autofac.2.6.3.862/lib/NET35/Autofac.xml

+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Autofac</name>
+    </assembly>
+    <members>
+        <member name="T:Autofac.Features.GeneratedFactories.FactoryGenerator">
+            <summary>
+            Generates context-bound closures that represent factories from
+            a set of heuristics based on delegate type signatures.
+            </summary>
+        </member>
+        <member name="M:Autofac.Features.GeneratedFactories.FactoryGenerator.#ctor(System.Type,Autofac.Core.Service,Autofac.Features.GeneratedFactories.ParameterMapping)">
+            <summary>
+            Create a factory generator.
+            </summary>
+            <param name="service">The service that will be activated in
+            order to create the products of the factory.</param>
+            <param name="delegateType">The delegate to provide as a factory.</param>
+            <param name="parameterMapping">The parameter mapping mode to use.</param>
+        </member>
+        <member name="M:Autofac.Features.GeneratedFactories.FactoryGenerator.#ctor(System.Type,Autofac.Core.IComponentRegistration,Autofac.Features.GeneratedFactories.ParameterMapping)">
+            <summary>
+            Create a factory generator.
+            </summary>
+            <param name="productRegistration">The component that will be activated in
+            order to create the products of the factory.</param>
+            <param name="delegateType">The delegate to provide as a factory.</param>
+            <param name="parameterMapping">The parameter mapping mode to use.</param>
+        </member>
+        <member name="M:Autofac.Features.GeneratedFactories.FactoryGenerator.GenerateFactory(Autofac.IComponentContext,System.Collections.Generic.IEnumerable{Autofac.Core.Parameter})">
+            <summary>
+            Generates a factory delegate that closes over the provided context.
+            </summary>
+            <param name="context">The context in which the factory will be used.</param>
+            <param name="parameters">Parameters provided to the resolve call for the factory itself.</param>
+            <returns>A factory delegate that will work within the context.</returns>
+        </member>
+        <member name="M:Autofac.Features.GeneratedFactories.FactoryGenerator.GenerateFactory``1(Autofac.IComponentContext,System.Collections.Generic.IEnumerable{Autofac.Core.Parameter})">
+            <summary>
+            Generates a factory delegate that closes over the provided context.
+            </summary>
+            <param name="context">The context in which the factory will be used.</param>
+            <param name="parameters">Parameters provided to the resolve call for the factory itself.</param>
+            <returns>A factory delegate that will work within the context.</returns>
+        </member>
+        <member name="T:Autofac.Builder.ConcreteReflectionActivatorData">
+            <summary>
+            Reflection activator data for concrete types.
+            </summary>
+        </member>
+        <member name="T:Autofac.Builder.ReflectionActivatorData">
+            <summary>
+            Builder for reflection-based activators.
+            </summary>
+        </member>
+        <member name="M:Autofac.Builder.ReflectionActivatorData.#ctor(System.Type)">
+            <summary>
+            Specify a reflection activator for the given type.
+            </summary>
+            <param name="implementor">Type that will be activated.</param>
+        </member>
+        <member name="P:Autofac.Builder.ReflectionActivatorData.ImplementationType">
+            <summary>
+            Get the implementation type.
+            </summary>
+        </member>
+        <member name="P:Autofac.Builder.ReflectionActivatorData.ConstructorFinder">
+            <summary>
+            The constructor finder for the registration.
+            </summary>
+        </member>
+        <member name="P:Autofac.Builder.ReflectionActivatorData.ConstructorSelector">
+            <summary>
+            The constructor selector for the registration.
+            </summary>
+        </member>
+        <member name="P:Autofac.Builder.ReflectionActivatorData.ConfiguredParameters">
+            <summary>
+            The explicitly bound constructor parameters.
+            </summary>
+        </member>
+        <member name="P:Autofac.Builder.ReflectionActivatorData.ConfiguredProperties">
+            <summary>
+            The explicitly bound properties.
+            </summary>
+        </member>
+        <member name="T:Autofac.Builder.IConcreteActivatorData">
+            <summary>
+            Activator data that can provide an IInstanceActivator instance.
+            </summary>
+        </member>
+        <member name="P:Autofac.Builder.IConcreteActivatorData.Activator">
+            <summary>
+            The instance activator based on the provided data.
+            </summary>
+        </member>
+        <member name="M:Autofac.Builder.ConcreteReflectionActivatorData.#ctor(System.Type)">
+            <summary>
+            Specify a reflection activator for the given type.
+            </summary>
+            <param name="implementor">Type that will be activated.</param>
+        </member>
+        <member name="P:Autofac.Builder.ConcreteReflectionActivatorData.Activator">
+            <summary>
+            The instance activator based on the provided data.
+            </summary>
+        </member>
+        <member name="T:Autofac.Builder.ContainerBuildOptions">
+            <summary>
+            Parameterises the construction of a container by a <see cref="T:Autofac.ContainerBuilder"/>.
+            </summary>
+        </member>
+        <member name="F:Autofac.Builder.ContainerBuildOptions.None">
+            <summary>
+            No options.
+            </summary>
+        </member>
+        <member name="F:Autofac.Builder.ContainerBuildOptions.Default">
+            <summary>
+            Standard container construction.
+            </summary>
+        </member>
+        <member name="F:Autofac.Builder.ContainerBuildOptions.ExcludeDefaultModules">
+            <summary>
+            Prevents inclusion of standard modules like support for
+            relationship types including <see cref="T:System.Collections.Generic.IEnumerable`1"/> etc.
+            </summary>
+        </member>
+        <member name="F:Autofac.Builder.ContainerBuildOptions.IgnoreStartableComponents">
+            <summary>
+            Does not call <see cref="M:Autofac.IStartable.Start"/> on components implementing
+            this interface (useful for module testing.)
+            </summary>
+        </member>
+        <member name="T:Autofac.Builder.IRegistrationBuilder`3">
+            <summary>
+            Data structure used to construct registrations.
+            </summary>
+            <typeparam name="TLimit">The most specific type to which instances of the registration
+            can be cast.</typeparam>
+            <typeparam name="TActivatorData">Activator builder type.</typeparam>
+            <typeparam name="TRegistrationStyle">Registration style type.</typeparam>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.ExternallyOwned">
+            <summary>
+            Configure the component so that instances are never disposed by the container.
+            </summary>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.OwnedByLifetimeScope">
+            <summary>
+            Configure the component so that instances that support IDisposable are
+            disposed by the container (default.)
+            </summary>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.InstancePerDependency">
+            <summary>
+            Configure the component so that every dependent component or call to Resolve()
+            gets a new, unique instance (default.)
+            </summary>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.SingleInstance">
+            <summary>
+            Configure the component so that every dependent component or call to Resolve()
+            gets the same, shared instance.
+            </summary>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.InstancePerLifetimeScope">
+            <summary>
+            Configure the component so that every dependent component or call to Resolve()
+            within a single ILifetimeScope gets the same, shared instance. Dependent components in
+            different lifetime scopes will get different instances.
+            </summary>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.InstancePerMatchingLifetimeScope(System.Object)">
+            <summary>
+            Configure the component so that every dependent component or call to Resolve()
+            within a ILifetimeScope tagged with the provided tag value gets the same, shared instance.
+            Dependent components in lifetime scopes that are children of the tagged scope will
+            share the parent's instance. If no appropriately tagged scope can be found in the
+            hierarchy an <see cref="T:Autofac.Core.DependencyResolutionException"/> is thrown.
+            </summary>
+            <param name="lifetimeScopeTag">Tag applied to matching lifetime scopes.</param>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.InstancePerOwned``1">
+            <summary>
+            Configure the component so that every dependent component or call to Resolve()
+            within a ILifetimeScope created by an owned instance gets the same, shared instance.
+            Dependent components in lifetime scopes that are children of the owned instance scope will
+            share the parent's instance. If no appropriate owned instance scope can be found in the
+            hierarchy an <see cref="T:Autofac.Core.DependencyResolutionException"/> is thrown.
+            </summary>
+            <typeparam name="TService">Service type.</typeparam>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.InstancePerOwned(System.Type)">
+            <summary>
+            Configure the component so that every dependent component or call to Resolve()
+            within a ILifetimeScope created by an owned instance gets the same, shared instance.
+            Dependent components in lifetime scopes that are children of the owned instance scope will
+            share the parent's instance. If no appropriate owned instance scope can be found in the
+            hierarchy an <see cref="T:Autofac.Core.DependencyResolutionException"/> is thrown.
+            </summary>
+            <param name="serviceType">Service type.</param>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.InstancePerOwned``1(System.Object)">
+            <summary>
+            Configure the component so that every dependent component or call to Resolve()
+            within a ILifetimeScope created by an owned instance gets the same, shared instance.
+            Dependent components in lifetime scopes that are children of the owned instance scope will
+            share the parent's instance. If no appropriate owned instance scope can be found in the
+            hierarchy an <see cref="T:Autofac.Core.DependencyResolutionException"/> is thrown.
+            </summary>
+            <typeparam name="TService">The service type provided by the component.</typeparam>
+            <param name="serviceKey">Key to associate with the component.</param>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.InstancePerOwned(System.Object,System.Type)">
+            <summary>
+            Configure the component so that every dependent component or call to Resolve()
+            within a ILifetimeScope created by an owned instance gets the same, shared instance.
+            Dependent components in lifetime scopes that are children of the owned instance scope will
+            share the parent's instance. If no appropriate owned instance scope can be found in the
+            hierarchy an <see cref="T:Autofac.Core.DependencyResolutionException"/> is thrown.
+            </summary>
+            <param name="serviceKey">Key to associate with the component.</param>
+            <param name="serviceType">The service type provided by the component.</param>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.As``1">
+            <summary>
+            Configure the services that the component will provide. The generic parameter(s) to As()
+            will be exposed as TypedService instances.
+            </summary>
+            <typeparam name="TService">Service type.</typeparam>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.As``2">
+            <summary>
+            Configure the services that the component will provide. The generic parameter(s) to As()
+            will be exposed as TypedService instances.
+            </summary>
+            <typeparam name="TService1">Service type.</typeparam>
+            <typeparam name="TService2">Service type.</typeparam>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.As``3">
+            <summary>
+            Configure the services that the component will provide. The generic parameter(s) to As()
+            will be exposed as TypedService instances.
+            </summary>
+            <typeparam name="TService1">Service type.</typeparam>
+            <typeparam name="TService2">Service type.</typeparam>
+            <typeparam name="TService3">Service type.</typeparam>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.As(System.Type[])">
+            <summary>
+            Configure the services that the component will provide.
+            </summary>
+            <param name="services">Service types to expose.</param>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.As(Autofac.Core.Service[])">
+            <summary>
+            Configure the services that the component will provide.
+            </summary>
+            <param name="services">Services to expose.</param>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.Named(System.String,System.Type)">
+            <summary>
+            Provide a textual name that can be used to retrieve the component.
+            </summary>
+            <param name="serviceName">Named service to associate with the component.</param>
+            <param name="serviceType">The service type provided by the component.</param>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.Named``1(System.String)">
+            <summary>
+            Provide a textual name that can be used to retrieve the component.
+            </summary>
+            <param name="serviceName">Named service to associate with the component.</param>
+            <typeparam name="TService">The service type provided by the component.</typeparam>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.Keyed(System.Object,System.Type)">
+            <summary>
+            Provide a key that can be used to retrieve the component.
+            </summary>
+            <param name="serviceKey">Key to associate with the component.</param>
+            <param name="serviceType">The service type provided by the component.</param>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.Keyed``1(System.Object)">
+            <summary>
+            Provide a key that can be used to retrieve the component.
+            </summary>
+            <param name="serviceKey">Key to associate with the component.</param>
+            <typeparam name="TService">The service type provided by the component.</typeparam>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.OnPreparing(System.Action{Autofac.Core.PreparingEventArgs})">
+            <summary>
+            Add a handler for the Preparing event. This event allows manipulating of the parameters
+            that will be provided to the component.
+            </summary>
+            <param name="handler">The event handler.</param>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.OnActivating(System.Action{Autofac.Core.IActivatingEventArgs{`0}})">
+            <summary>
+            Add a handler for the Activating event.
+            </summary>
+            <param name="handler">The event handler.</param>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.OnActivated(System.Action{Autofac.Core.IActivatedEventArgs{`0}})">
+            <summary>
+            Add a handler for the Activated event.
+            </summary>
+            <param name="handler">The event handler.</param>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.PropertiesAutowired(Autofac.PropertyWiringFlags)">
+            <summary>
+            Configure the component so that any properties whose types are registered in the
+            container will be wired to instances of the appropriate service.
+            </summary>
+            <param name="wiringFlags">Set wiring options such as circular dependency wiring support.</param>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.WithMetadata(System.String,System.Object)">
+            <summary>
+            Associates data with the component.
+            </summary>
+            <param name="key">Key by which the data can be located.</param>
+            <param name="value">The data value.</param>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.WithMetadata(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
+            <summary>
+            Associates data with the component.
+            </summary>
+            <param name="properties">The extended properties to associate with the component.</param>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="M:Autofac.Builder.IRegistrationBuilder`3.WithMetadata``1(System.Action{Autofac.Builder.MetadataConfiguration{``0}})">
+            <summary>
+            Associates data with the component.
+            </summary>
+            <typeparam name="TMetadata">A type with properties whose names correspond to the
+            property names to configure.</typeparam>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="P:Autofac.Builder.IRegistrationBuilder`3.ActivatorData">
+            <summary>
+            The activator data.
+            </summary>
+        </member>
+        <member name="P:Autofac.Builder.IRegistrationBuilder`3.RegistrationStyle">
+            <summary>
+            The registration style.
+            </summary>
+        </member>
+        <member name="P:Autofac.Builder.IRegistrationBuilder`3.RegistrationData">
+            <summary>
+            The registration data.
+            </summary>
+        </member>
+        <member name="T:Autofac.Builder.MetadataConfiguration`1">
+            <summary>
+            Used with the WithMetadata configuration method to
+            associate key-value pairs with an <see cref="T:Autofac.Core.IComponentRegistration"/>.
+            </summary>
+            <typeparam name="TMetadata">Interface with properties whose names correspond to
+            the property keys.</typeparam>
+            <remarks>This feature was suggested by OJ Reeves (@TheColonial).</remarks>
+        </member>
+        <member name="M:Autofac.Builder.MetadataConfiguration`1.For``1(System.Linq.Expressions.Expression{System.Func{`0,``0}},``0)">
+            <summary>
+            Set one of the property values.
+            </summary>
+            <typeparam name="TProperty">The type of the property.</typeparam>
+            <param name="propertyAccessor">An expression that accesses the property to set.</param>
+            <param name="value">The property value to set.</param>
+        </member>
+        <member name="T:Autofac.Core.Registration.CopyOnWriteRegistry">
+            <summary>
+            Delegates registration lookups to a specified registry. When write operations are applied,
+            initialises a new 'writeable' registry.
+            </summary>
+            <remarks>
+            Safe for concurrent access by multiple readers. Write operations are single-threaded.
+            </remarks>
+        </member>
+        <member name="T:Autofac.Core.IComponentRegistry">
+            <summary>
+            Provides component registrations according to the services they provide.
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.IComponentRegistry.TryGetRegistration(Autofac.Core.Service,Autofac.Core.IComponentRegistration@)">
+            <summary>
+            Attempts to find a default registration for the specified service.
+            </summary>
+            <param name="service">The service to look up.</param>
+            <param name="registration">The default registration for the service.</param>
+            <returns>True if a registration exists.</returns>
+        </member>
+        <member name="M:Autofac.Core.IComponentRegistry.IsRegistered(Autofac.Core.Service)">
+            <summary>
+            Determines whether the specified service is registered.
+            </summary>
+            <param name="service">The service to test.</param>
+            <returns>True if the service is registered.</returns>
+        </member>
+        <member name="M:Autofac.Core.IComponentRegistry.Register(Autofac.Core.IComponentRegistration)">
+            <summary>
+            Register a component.
+            </summary>
+            <param name="registration">The component registration.</param>
+        </member>
+        <member name="M:Autofac.Core.IComponentRegistry.Register(Autofac.Core.IComponentRegistration,System.Boolean)">
+            <summary>
+            Register a component.
+            </summary>
+            <param name="registration">The component registration.</param>
+            <param name="preserveDefaults">If true, existing defaults for the services provided by the
+            component will not be changed.</param>
+        </member>
+        <member name="M:Autofac.Core.IComponentRegistry.RegistrationsFor(Autofac.Core.Service)">
+            <summary>
+            Selects from the available registrations after ensuring that any
+            dynamic registration sources that may provide <paramref name="service"/>
+            have been invoked.
+            </summary>
+            <param name="service">The service for which registrations are sought.</param>
+            <returns>Registrations supporting <paramref name="service"/>.</returns>
+        </member>
+        <member name="M:Autofac.Core.IComponentRegistry.AddRegistrationSource(Autofac.Core.IRegistrationSource)">
+            <summary>
+            Add a registration source that will provide registrations on-the-fly.
+            </summary>
+            <param name="source">The source to register.</param>
+        </member>
+        <member name="P:Autofac.Core.IComponentRegistry.Registrations">
+            <summary>
+            Enumerate the registered components.
+            </summary>
+        </member>
+        <member name="E:Autofac.Core.IComponentRegistry.Registered">
+            <summary>
+            Fired whenever a component is registered - either explicitly or via a
+            <see cref="T:Autofac.Core.IRegistrationSource"/>.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IComponentRegistry.Sources">
+            <summary>
+            Gets the registration sources that are used by the registry.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IComponentRegistry.HasLocalComponents">
+            <summary>
+            True if the registry contains its own components; false if it is forwarding
+            registrations from another external registry.
+            </summary>
+            <remarks>This property is used when walking up the scope tree looking for
+            registrations for a new customised scope. (See issue 336.)</remarks>
+        </member>
+        <member name="E:Autofac.Core.IComponentRegistry.RegistrationSourceAdded">
+            <summary>
+            Fired when an <see cref="T:Autofac.Core.IRegistrationSource"/> is added to the registry.
+            </summary>
+        </member>
+        <member name="T:Autofac.Features.Variance.ContravariantRegistrationSource">
+            <summary>
+            Enables contravariant <code>Resolve()</code> for interfaces that have a single contravariant ('in') parameter.
+            </summary>
+            <example>
+            interface IHandler&lt;in TCommand&gt;
+            {
+                void Handle(TCommand command);
+            }
+            
+            class Command { }
+            
+            class DerivedCommand : Command { }
+            
+            class CommandHandler : IHandler&lt;Command&gt; { ... }
+            
+            var builder = new ContainerBuilder();
+            builder.RegisterSource(new ContravariantRegistrationSource());
+            builder.RegisterType&lt;CommandHandler&gt;();
+            var container = builder.Build();
+            // Source enables this line, even though IHandler&lt;Command&gt; is the
+            // actual registered type.
+            var handler = container.Resolve&lt;IHandler&lt;DerivedCommand&gt;&gt;();
+            handler.Handle(new DerivedCommand());
+            </example>
+        </member>
+        <member name="T:Autofac.Core.IRegistrationSource">
+            <summary>
+            Allows registrations to be made on-the-fly when unregistered
+            services are requested (lazy registrations.)
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.IRegistrationSource.RegistrationsFor(Autofac.Core.Service,System.Func{Autofac.Core.Service,System.Collections.Generic.IEnumerable{Autofac.Core.IComponentRegistration}})">
+            <summary>
+            Retrieve registrations for an unregistered service, to be used
+            by the container.
+            </summary>
+            <param name="service">The service that was requested.</param>
+            <param name="registrationAccessor">A function that will return existing registrations for a service.</param>
+            <returns>Registrations providing the service.</returns>
+            <remarks>
+            If the source is queried for service s, and it returns a component that implements both s and s', then it
+            will not be queried again for either s or s'. This means that if the source can return other implementations
+            of s', it should return these, plus the transitive closure of other components implementing their 
+            additional services, along with the implementation of s. It is not an error to return components
+            that do not implement <paramref name="service"/>.
+            </remarks>
+        </member>
+        <member name="P:Autofac.Core.IRegistrationSource.IsAdapterForIndividualComponents">
+            <summary>
+            Gets whether the registrations provided by this source are 1:1 adapters on top
+            of other components (I.e. like Meta, Func or Owned.)
+            </summary>
+        </member>
+        <member name="M:Autofac.Features.Variance.ContravariantRegistrationSource.RegistrationsFor(Autofac.Core.Service,System.Func{Autofac.Core.Service,System.Collections.Generic.IEnumerable{Autofac.Core.IComponentRegistration}})">
+            <summary>
+            Retrieve registrations for an unregistered service, to be used
+            by the container.
+            </summary>
+            <param name="service">The service that was requested.</param>
+            <param name="registrationAccessor">A function that will return existing registrations for a service.</param>
+            <returns>Registrations providing the service.</returns>
+            <remarks>
+            If the source is queried for service s, and it returns a component that implements both s and s', then it
+            will not be queried again for either s or s'. This means that if the source can return other implementations
+            of s', it should return these, plus the transitive closure of other components implementing their 
+            additional services, along with the implementation of s. It is not an error to return components
+            that do not implement <paramref name="service"/>.
+            </remarks>
+        </member>
+        <member name="P:Autofac.Features.Variance.ContravariantRegistrationSource.IsAdapterForIndividualComponents">
+            <summary>
+            Gets whether the registrations provided by this source are 1:1 adapters on top
+            of other components (I.e. like Meta, Func or Owned.)
+            </summary>
+        </member>
+        <member name="T:Autofac.PropertyWiringFlags">
+            <summary>
+            Options that can be applied when autowiring properties on a component. (Multiple options can
+            be specified using bitwise 'or' - e.g. AllowCircularDependencies | PreserveSetValues.
+            </summary>
+        </member>
+        <member name="F:Autofac.PropertyWiringFlags.Default">
+            <summary>
+            Default behavior. Circular dependencies are not allowed; existing non-default
+            property values are overwritten.
+            </summary>
+        </member>
+        <member name="F:Autofac.PropertyWiringFlags.AllowCircularDependencies">
+            <summary>
+            Allows property-property and property-constructor circular dependency wiring.
+            This flag moves property wiring from the Activating to the Activated event.
+            </summary>
+        </member>
+        <member name="F:Autofac.PropertyWiringFlags.PreserveSetValues">
+            <summary>
+            If specified, properties that already have a non-default value will be left
+            unchanged in the wiring operation.
+            </summary>
+        </member>
+        <member name="T:Autofac.Builder.RegistrationBuilder">
+            <summary>
+            Static factory methods to simplify the creation and handling of IRegistrationBuilder{L,A,R}.
+            </summary>
+            <example>
+            To create an <see cref="T:Autofac.Core.IComponentRegistration"/> for a specific type, use:
+            <code>
+            var cr = RegistrationBuilder.ForType(t).CreateRegistration();
+            </code>
+            The full builder syntax is supported:
+            <code>
+            var cr = RegistrationBuilder.ForType(t).Named("foo").ExternallyOwned().CreateRegistration();
+            </code>
+            </example>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationBuilder.ForDelegate``1(System.Func{Autofac.IComponentContext,System.Collections.Generic.IEnumerable{Autofac.Core.Parameter},``0})">
+            <summary>
+            Creates a registration builder for the provided delegate.
+            </summary>
+            <typeparam name="T">Instance type returned by delegate.</typeparam>
+            <param name="delegate">Delegate to register.</param>
+            <returns>A registration builder.</returns>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationBuilder.ForDelegate(System.Type,System.Func{Autofac.IComponentContext,System.Collections.Generic.IEnumerable{Autofac.Core.Parameter},System.Object})">
+            <summary>
+            Creates a registration builder for the provided delegate.
+            </summary>
+            <param name="delegate">Delegate to register.</param>
+            <param name="limitType">Most specific type return value of delegate can be cast to.</param>
+            <returns>A registration builder.</returns>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationBuilder.ForType``1">
+            <summary>
+            Creates a registration builder for the provided type.
+            </summary>
+            <typeparam name="TImplementor">Implementation type to register.</typeparam>
+            <returns>A registration builder.</returns>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationBuilder.ForType(System.Type)">
+            <summary>
+            Creates a registration builder for the provided type.
+            </summary>
+            <param name="implementationType">Implementation type to register.</param>
+            <returns>A registration builder.</returns>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationBuilder.CreateRegistration``3(Autofac.Builder.IRegistrationBuilder{``0,``1,``2})">
+            <summary>
+            Create an <see cref="T:Autofac.Core.IComponentRegistration"/> from a <see cref="T:Autofac.Builder.RegistrationBuilder"/>.
+            (There is no need to call
+            this method when registering components through a <see cref="T:Autofac.ContainerBuilder"/>.)
+            </summary>
+            <remarks>
+            When called on the result of one of the <see cref="T:Autofac.ContainerBuilder"/> methods,
+            the returned registration will be different from the one the builder itself registers
+            in the container.
+            </remarks>
+            <example>
+            <code>
+            var registration = RegistrationBuilder.ForType&lt;Foo&gt;().CreateRegistration();
+            </code>
+            </example>
+            <typeparam name="TLimit"></typeparam>
+            <typeparam name="TActivatorData"></typeparam>
+            <typeparam name="TSingleRegistrationStyle"></typeparam>
+            <param name="rb">The registration builder.</param>
+            <returns>An IComponentRegistration.</returns>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationBuilder.CreateRegistration(System.Guid,Autofac.Builder.RegistrationData,Autofac.Core.IInstanceActivator,System.Collections.Generic.IEnumerable{Autofac.Core.Service})">
+            <summary>
+            Create an IComponentRegistration from data.
+            </summary>
+            <param name="id">Id of the registration.</param>
+            <param name="data">Registration data.</param>
+            <param name="activator">Activator.</param>
+            <param name="services">Services provided by the registration.</param>
+            <returns>An IComponentRegistration.</returns>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationBuilder.CreateRegistration(System.Guid,Autofac.Builder.RegistrationData,Autofac.Core.IInstanceActivator,System.Collections.Generic.IEnumerable{Autofac.Core.Service},Autofac.Core.IComponentRegistration)">
+            <summary>
+            Create an IComponentRegistration from data.
+            </summary>
+            <param name="id">Id of the registration.</param>
+            <param name="data">Registration data.</param>
+            <param name="activator">Activator.</param>
+            <param name="services">Services provided by the registration.</param>
+            <param name="target">Optional; target registration.</param>
+            <returns>An IComponentRegistration.</returns>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationBuilder.RegisterSingleComponent``3(Autofac.Core.IComponentRegistry,Autofac.Builder.IRegistrationBuilder{``0,``1,``2})">
+            <summary>
+            Register a component in the component registry. This helper method is necessary
+            in order to execute OnRegistered hooks and respect PreserveDefaults. 
+            </summary>
+            <remarks>Hoping to refactor this out.</remarks>
+            <typeparam name="TLimit"></typeparam>
+            <typeparam name="TActivatorData"></typeparam>
+            <typeparam name="TSingleRegistrationStyle"></typeparam>
+            <param name="cr">Component registry to make registration in.</param>
+            <param name="rb">Registration builder with data for new registration.</param>
+        </member>
+        <member name="T:Autofac.Builder.RegistrationBuilderResources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Autofac.Builder.RegistrationBuilderResources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Builder.RegistrationBuilderResources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Builder.RegistrationBuilderResources.ComponentDoesNotSupportService">
+            <summary>
+              Looks up a localized string similar to The type &apos;{0}&apos; is not assignable to service &apos;{1}&apos;..
+            </summary>
+        </member>
+        <member name="T:Autofac.Builder.RegistrationExtensions">
+            <summary>
+            Adds registration syntax for less commonly-used features.
+            </summary>
+            <remarks>
+            These features are in this namespace because they will remain accessible to
+            applications originally written against Autofac 1.4. In Autofac 2, this functionality
+            is implicitly provided and thus making explicit registrations is rarely necessary.
+            </remarks>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationExtensions.RegisterGeneratedFactory(Autofac.ContainerBuilder,System.Type)">
+            <summary>
+            Registers a factory delegate.
+            </summary>
+            <param name="builder">Container builder.</param>
+            <param name="delegateType">Factory type to generate.</param>
+            <returns>Registration builder allowing the registration to be configured.</returns>
+            <remarks>Factory delegates are provided automatically in Autofac 2,
+            and this method is generally not required.</remarks>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationExtensions.RegisterGeneratedFactory(Autofac.ContainerBuilder,System.Type,Autofac.Core.Service)">
+            <summary>
+            Registers a factory delegate.
+            </summary>
+            <param name="builder">Container builder.</param>
+            <param name="delegateType">Factory type to generate.</param>
+            <param name="service">The service that the delegate will return instances of.</param>
+            <returns>Registration builder allowing the registration to be configured.</returns>
+            <remarks>Factory delegates are provided automatically in Autofac 2, and
+            this method is generally not required.</remarks>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationExtensions.RegisterGeneratedFactory``1(Autofac.ContainerBuilder,Autofac.Core.Service)">
+            <summary>
+            Registers a factory delegate.
+            </summary>
+            <typeparam name="TDelegate">The type of the delegate.</typeparam>
+            <param name="builder">Container builder.</param>
+            <param name="service">The service that the delegate will return instances of.</param>
+            <returns>Registration builder allowing the registration to be configured.</returns>
+            <remarks>Factory delegates are provided automatically in Autofac 2,
+            and this method is generally not required.</remarks>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationExtensions.RegisterGeneratedFactory``1(Autofac.ContainerBuilder)">
+            <summary>
+            Registers a factory delegate.
+            </summary>
+            <typeparam name="TDelegate">The type of the delegate.</typeparam>
+            <param name="builder">Container builder.</param>
+            <returns>Registration builder allowing the registration to be configured.</returns>
+            <remarks>Factory delegates are provided automatically in Autofac 2,
+            and this method is generally not required.</remarks>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationExtensions.NamedParameterMapping``3(Autofac.Builder.IRegistrationBuilder{``0,``1,``2})">
+            <summary>
+            Changes the parameter mapping mode of the supplied delegate type to match
+            parameters by name.
+            </summary>
+            <typeparam name="TDelegate">Factory delegate type</typeparam>
+            <typeparam name="TGeneratedFactoryActivatorData">Activator data type</typeparam>
+            <typeparam name="TSingleRegistrationStyle">Registration style</typeparam>
+            <param name="registration">Registration to change parameter mapping mode of.</param>
+            <returns>Registration builder allowing the registration to be configured.</returns>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationExtensions.PositionalParameterMapping``3(Autofac.Builder.IRegistrationBuilder{``0,``1,``2})">
+            <summary>
+            Changes the parameter mapping mode of the supplied delegate type to match
+            parameters by position.
+            </summary>
+            <typeparam name="TDelegate">Factory delegate type</typeparam>
+            <typeparam name="TGeneratedFactoryActivatorData">Activator data type</typeparam>
+            <typeparam name="TSingleRegistrationStyle">Registration style</typeparam>
+            <param name="registration">Registration to change parameter mapping mode of.</param>
+            <returns>Registration builder allowing the registration to be configured.</returns>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationExtensions.TypedParameterMapping``3(Autofac.Builder.IRegistrationBuilder{``0,``1,``2})">
+            <summary>
+            Changes the parameter mapping mode of the supplied delegate type to match
+            parameters by type.
+            </summary>
+            <typeparam name="TDelegate">Factory delegate type</typeparam>
+            <typeparam name="TGeneratedFactoryActivatorData">Activator data type</typeparam>
+            <typeparam name="TSingleRegistrationStyle">Registration style</typeparam>
+            <param name="registration">Registration to change parameter mapping mode of.</param>
+            <returns>Registration builder allowing the registration to be configured.</returns>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationExtensions.RegisterCollection(Autofac.ContainerBuilder,System.String,System.Type)">
+            <summary>
+            Registers the type as a collection. If no services or names are specified, the
+            default services will be IList&lt;T&gt;, ICollection&lt;T&gt;, and IEnumerable&lt;T&gt;        
+            </summary>
+            <param name="elementType">The type of the collection elements.</param>
+            <param name="builder">Container builder.</param>
+            <param name="collectionName">A unique name for the collection that can be passed to MemberOf().</param>
+            <returns>Registration builder allowing the registration to be configured.</returns>
+            <remarks>Collections are provided automatically in Autofac 2,
+            and this method is generally not required.</remarks>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationExtensions.RegisterCollection``1(Autofac.ContainerBuilder,System.String)">
+            <summary>
+            Registers the type as a collection. If no services or names are specified, the
+            default services will be IList&lt;T&gt;, ICollection&lt;T&gt;, and IEnumerable&lt;T&gt;        
+            </summary>
+            <typeparam name="T">The type of the collection elements.</typeparam>
+            <param name="builder">Container builder.</param>
+            <param name="collectionName">A unique name for the collection that can be passed to MemberOf().</param>
+            <returns>Registration builder allowing the registration to be configured.</returns>
+            <remarks>Collections are provided automatically in Autofac 2,
+            and this method is generally not required.</remarks>
+        </member>
+        <member name="M:Autofac.Builder.RegistrationExtensions.MemberOf``3(Autofac.Builder.IRegistrationBuilder{``0,``1,``2},System.String)">
+            <summary>
+            Include the element explicitly in a collection configured using RegisterCollection.
+            </summary>
+            <typeparam name="TLimit">Registration limit type.</typeparam>
+            <typeparam name="TSingleRegistrationStyle">Registration style.</typeparam>
+            <typeparam name="TActivatorData">Activator data type.</typeparam>
+            <param name="registration">Registration to export.</param>
+            <param name="collectionName">The collection name, as passed to RegisterCollection.</param>
+            <returns>A registration builder allowing further configuration of the component.</returns>
+        </member>
+        <member name="T:Autofac.ContainerBuilderResources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Autofac.ContainerBuilderResources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Autofac.ContainerBuilderResources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Autofac.ContainerBuilderResources.BuildCanOnlyBeCalledOnce">
+            <summary>
+              Looks up a localized string similar to Build() or Update() can only be called once on a ContainerBuilder..
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Activators.Delegate.DelegateActivatorResources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Activators.Delegate.DelegateActivatorResources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Activators.Delegate.DelegateActivatorResources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Activators.Delegate.DelegateActivatorResources.NullFromActivationDelegateFor">
+            <summary>
+              Looks up a localized string similar to A delegate registered to create instances of &apos;{0}&apos; returned null..
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Activators.Reflection.BindingFlagsConstructorFinderResources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Activators.Reflection.BindingFlagsConstructorFinderResources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Activators.Reflection.BindingFlagsConstructorFinderResources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Activators.Reflection.BindingFlagsConstructorFinderResources.HasBindingFlags">
+            <summary>
+              Looks up a localized string similar to {0} binding flags.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Activators.Reflection.ConstructorParameterBindingResources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Activators.Reflection.ConstructorParameterBindingResources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Activators.Reflection.ConstructorParameterBindingResources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Activators.Reflection.ConstructorParameterBindingResources.BoundConstructor">
+            <summary>
+              Looks up a localized string similar to Bound constructor &apos;{0}&apos;..
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Activators.Reflection.ConstructorParameterBindingResources.CannotInstantitate">
+            <summary>
+              Looks up a localized string similar to The binding cannot be instantiated..
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Activators.Reflection.ConstructorParameterBindingResources.ExceptionDuringInstantiation">
+            <summary>
+              Looks up a localized string similar to An exception was thrown while invoking the constructor &apos;{0}&apos; on type &apos;{1}&apos;..
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Activators.Reflection.ConstructorParameterBindingResources.NonBindableConstructor">
+            <summary>
+              Looks up a localized string similar to Cannot resolve parameter &apos;{1}&apos; of constructor &apos;{0}&apos;..
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Activators.Reflection.DefaultValueParameter">
+            <summary>
+            Provides parameters that have a default value, set with an optional parameter
+            declaration in C# or VB.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Parameter">
+            <summary>
+            Used in order to provide a value to a constructor parameter or property on an instance
+            being created by the container.
+            </summary>
+            <remarks>
+            Not all parameters can be applied to all sites.
+            </remarks>
+        </member>
+        <member name="M:Autofac.Core.Parameter.CanSupplyValue(System.Reflection.ParameterInfo,Autofac.IComponentContext,System.Func{System.Object}@)">
+            <summary>
+            Returns true if the parameter is able to provide a value to a particular site.
+            </summary>
+            <param name="pi">Constructor, method, or property-mutator parameter.</param>
+            <param name="context">The component context in which the value is being provided.</param>
+            <param name="valueProvider">If the result is true, the valueProvider parameter will
+            be set to a function that will lazily retrieve the parameter value. If the result is false,
+            will be set to null.</param>
+            <returns>True if a value can be supplied; otherwise, false.</returns>
+        </member>
+        <member name="M:Autofac.Core.Activators.Reflection.DefaultValueParameter.CanSupplyValue(System.Reflection.ParameterInfo,Autofac.IComponentContext,System.Func{System.Object}@)">
+            <summary>
+            Returns true if the parameter is able to provide a value to a particular site.
+            </summary>
+            <param name="pi">Constructor, method, or property-mutator parameter.</param>
+            <param name="context">The component context in which the value is being provided.</param>
+            <param name="valueProvider">If the result is true, the valueProvider parameter will
+            be set to a function that will lazily retrieve the parameter value. If the result is false,
+            will be set to null.</param>
+            <returns>True if a value can be supplied; otherwise, false.</returns>
+        </member>
+        <member name="T:Autofac.Core.ContainerResources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.ContainerResources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.ContainerResources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.ContainerResources.SelfRegistrationCannotBeActivated">
+            <summary>
+              Looks up a localized string similar to The container&apos;s self-registration of context interfaces should never be activated as it is hard-wired into the LifetimeScope class..
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Diagnostics.IContainerAwareComponent">
+            <summary>
+            Marks a module as container-aware (for the purposes of attaching to diagnostic events.)
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.Diagnostics.IContainerAwareComponent.SetContainer(Autofac.IContainer)">
+            <summary>
+            Initialise the module with the container into which it is being registered.
+            </summary>
+            <param name="container">The container.</param>
+        </member>
+        <member name="T:Autofac.Core.IActivatedEventArgs`1">
+            <summary>
+            Fired when the activation process for a new instance is complete.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IActivatedEventArgs`1.Context">
+            <summary>
+            The context in which the activation occurred.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IActivatedEventArgs`1.Component">
+            <summary>
+            The component providing the instance.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IActivatedEventArgs`1.Parameters">
+            <summary>
+            The paramters provided when resolved.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IActivatedEventArgs`1.Instance">
+            <summary>
+            The instance that will be used to satisfy the request.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.IActivatingEventArgs`1">
+            <summary>
+            Fired after the construction of an instance but before that instance
+            is shared with any other or any members are invoked on it.
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.IActivatingEventArgs`1.ReplaceInstance(System.Object)">
+            <summary>
+            The instance can be replaced if needed, e.g. by an interface proxy.
+            </summary>
+            <param name="instance">The object to use instead of the activated instance.</param>
+        </member>
+        <member name="P:Autofac.Core.IActivatingEventArgs`1.Context">
+            <summary>
+            The context in which the activation occurred.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IActivatingEventArgs`1.Component">
+            <summary>
+            The component providing the instance.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IActivatingEventArgs`1.Instance">
+            <summary>
+            The instance that will be used to satisfy the request.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IActivatingEventArgs`1.Parameters">
+            <summary>
+            The parameters supplied to the activator.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.IServiceWithType">
+            <summary>
+            Interface supported by services that carry type information.
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.IServiceWithType.ChangeType(System.Type)">
+            <summary>
+            Return a new service of the same kind, but carrying
+            <paramref name="newType"/> as the <see cref="P:Autofac.Core.IServiceWithType.ServiceType"/>.
+            </summary>
+            <param name="newType">The new service type.</param>
+            <returns>A new service with the service type.</returns>
+        </member>
+        <member name="P:Autofac.Core.IServiceWithType.ServiceType">
+            <summary>
+            Gets the type of the service.
+            </summary>
+            <value>The type of the service.</value>
+        </member>
+        <member name="T:Autofac.Core.KeyedService">
+            <summary>
+            Identifies a service using a key in addition to its type.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Service">
+            <summary>
+            Services are the lookup keys used to locate component instances.
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.Service.ToString">
+            <summary>
+            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
+            </summary>
+            <returns>
+            A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
+            </returns>
+        </member>
+        <member name="M:Autofac.Core.Service.op_Equality(Autofac.Core.Service,Autofac.Core.Service)">
+            <summary>
+            Implements the operator ==.
+            </summary>
+            <param name="lhs">The LHS.</param>
+            <param name="rhs">The RHS.</param>
+            <returns>The result of the operator.</returns>
+        </member>
+        <member name="M:Autofac.Core.Service.op_Inequality(Autofac.Core.Service,Autofac.Core.Service)">
+            <summary>
+            Implements the operator !=.
+            </summary>
+            <param name="lhs">The LHS.</param>
+            <param name="rhs">The RHS.</param>
+            <returns>The result of the operator.</returns>
+        </member>
+        <member name="M:Autofac.Core.Service.Equals(System.Object)">
+            <summary>
+            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>.
+            </summary>
+            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:System.Object"/>.</param>
+            <returns>
+            true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>; otherwise, false.
+            </returns>
+            <exception cref="T:System.NullReferenceException">The <paramref name="obj"/> parameter is null.</exception>
+        </member>
+        <member name="M:Autofac.Core.Service.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>
+        </member>
+        <member name="P:Autofac.Core.Service.Description">
+            <summary>
+            Gets a human-readable description of the service.
+            </summary>
+            <value>The description.</value>
+        </member>
+        <member name="M:Autofac.Core.KeyedService.#ctor(System.Object,System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Autofac.Core.KeyedService"/> class.
+            </summary>
+            <param name="serviceKey">Key of the service.</param>
+            <param name="serviceType">Type of the service.</param>
+        </member>
+        <member name="M:Autofac.Core.KeyedService.Equals(System.Object)">
+            <summary>
+            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>.
+            </summary>
+            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:System.Object"/>.</param>
+            <returns>
+            true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>; otherwise, false.
+            </returns>
+            <exception cref="T:System.NullReferenceException">The <paramref name="obj"/> parameter is null.</exception>
+        </member>
+        <member name="M:Autofac.Core.KeyedService.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>
+        </member>
+        <member name="M:Autofac.Core.KeyedService.ChangeType(System.Type)">
+            <summary>
+            Return a new service of the same kind, but carrying
+            <paramref name="newType"/> as the <see cref="P:Autofac.Core.KeyedService.ServiceType"/>.
+            </summary>
+            <param name="newType">The new service type.</param>
+            <returns>A new service with the service type.</returns>
+        </member>
+        <member name="P:Autofac.Core.KeyedService.ServiceKey">
+            <summary>
+            Gets or sets the key of the service.
+            </summary>
+            <value>The key of the service.</value>
+        </member>
+        <member name="P:Autofac.Core.KeyedService.ServiceType">
+            <summary>
+            Gets the type of the service.
+            </summary>
+            <value>The type of the service.</value>
+        </member>
+        <member name="P:Autofac.Core.KeyedService.Description">
+            <summary>
+            Gets a human-readable description of the service.
+            </summary>
+            <value>The description.</value>
+        </member>
+        <member name="T:Autofac.Core.Lifetime.LifetimeScopeBeginningEventArgs">
+            <summary>
+            Describes when a lifetime scope is beginning.
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.Lifetime.LifetimeScopeBeginningEventArgs.#ctor(Autofac.ILifetimeScope)">
+            <summary>
+            Create an instance of the <see cref="T:Autofac.Core.Lifetime.LifetimeScopeBeginningEventArgs"/> class.
+            </summary>
+            <param name="lifetimeScope">The lifetime scope that is beginning.</param>
+        </member>
+        <member name="P:Autofac.Core.Lifetime.LifetimeScopeBeginningEventArgs.LifetimeScope">
+            <summary>
+            The lifetime scope that is beginning.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Lifetime.LifetimeScopeEndingEventArgs">
+            <summary>
+            Describes when a lifetime scope is ending.
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.Lifetime.LifetimeScopeEndingEventArgs.#ctor(Autofac.ILifetimeScope)">
+            <summary>
+            Create an instance of the <see cref="T:Autofac.Core.Lifetime.LifetimeScopeEndingEventArgs"/> class.
+            </summary>
+            <param name="lifetimeScope">The lifetime scope that is ending.</param>
+        </member>
+        <member name="P:Autofac.Core.Lifetime.LifetimeScopeEndingEventArgs.LifetimeScope">
+            <summary>
+            The lifetime scope that is ending.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Lifetime.LifetimeScopeResources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Lifetime.LifetimeScopeResources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Lifetime.LifetimeScopeResources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Lifetime.LifetimeScopeResources.ScopeIsDisposed">
+            <summary>
+              Looks up a localized string similar to Instances cannot be resolved and nested lifetimes cannot be created from this LifetimeScope as it has already been disposed..
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.RegistrationSourceAddedEventArgs">
+            <summary>
+            Fired when an <see cref="T:Autofac.Core.IRegistrationSource"/> is added to the registry.
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.RegistrationSourceAddedEventArgs.#ctor(Autofac.Core.IComponentRegistry,Autofac.Core.IRegistrationSource)">
+            <summary>
+            Construct an instance of the <see cref="T:Autofac.Core.RegistrationSourceAddedEventArgs"/> class.
+            </summary>
+            <param name="componentRegistry">The registry to which the source was added.</param>
+            <param name="registrationSource">The source that was added.</param>
+            <exception cref="T:System.ArgumentNullException"></exception>
+        </member>
+        <member name="P:Autofac.Core.RegistrationSourceAddedEventArgs.RegistrationSource">
+            <summary>
+            The registry to which the source was added.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.RegistrationSourceAddedEventArgs.ComponentRegistry">
+            <summary>
+            The source that was added.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Resolving.IInstanceLookup">
+            <summary>
+            Represents the process of finding a component during a resolve operation.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Resolving.IInstanceLookup.ComponentRegistration">
+            <summary>
+            The component for which an instance is to be looked up.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Resolving.IInstanceLookup.ActivationScope">
+            <summary>
+            The scope in which the instance will be looked up.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Resolving.IInstanceLookup.Parameters">
+            <summary>
+            The parameters provided for new instance creation.
+            </summary>
+        </member>
+        <member name="E:Autofac.Core.Resolving.IInstanceLookup.InstanceLookupEnding">
+            <summary>
+            Raised when the lookup phase of the operation is ending.
+            </summary>
+        </member>
+        <member name="E:Autofac.Core.Resolving.IInstanceLookup.CompletionBeginning">
+            <summary>
+            Raised when the completion phase of an instance lookup operation begins.
+            </summary>
+        </member>
+        <member name="E:Autofac.Core.Resolving.IInstanceLookup.CompletionEnding">
+            <summary>
+            Raised when the completion phase of an instance lookup operation ends.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Resolving.InstanceLookupCompletionBeginningEventArgs">
+            <summary>
+            Raised when the completion phase of an instance lookup operation begins.
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.Resolving.InstanceLookupCompletionBeginningEventArgs.#ctor(Autofac.Core.Resolving.IInstanceLookup)">
+            <summary>
+            Create an instance of the <see cref="T:Autofac.Core.Resolving.InstanceLookupCompletionBeginningEventArgs"/> class.
+            </summary>
+            <param name="instanceLookup">The instance lookup that is beginning the completion phase.</param>
+        </member>
+        <member name="P:Autofac.Core.Resolving.InstanceLookupCompletionBeginningEventArgs.InstanceLookup">
+            <summary>
+            The instance lookup operation that is beginning the completion phase.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Resolving.InstanceLookupCompletionEndingEventArgs">
+            <summary>
+            Raised when the completion phase of an instance lookup operation ends.
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.Resolving.InstanceLookupCompletionEndingEventArgs.#ctor(Autofac.Core.Resolving.IInstanceLookup)">
+            <summary>
+            Create an instance of the <see cref="T:Autofac.Core.Resolving.InstanceLookupCompletionEndingEventArgs"/> class.
+            </summary>
+            <param name="instanceLookup">The instance lookup that is ending the completion phase.</param>
+        </member>
+        <member name="P:Autofac.Core.Resolving.InstanceLookupCompletionEndingEventArgs.InstanceLookup">
+            <summary>
+            The instance lookup operation that is ending the completion phase.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Resolving.InstanceLookupEndingEventArgs">
+            <summary>
+            Fired when an instance is looked up.
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.Resolving.InstanceLookupEndingEventArgs.#ctor(Autofac.Core.Resolving.IInstanceLookup,System.Boolean)">
+            <summary>
+            Create an instance of the <see cref="T:Autofac.Core.Resolving.InstanceLookupBeginningEventArgs"/> class.
+            </summary>
+            <param name="instanceLookup">The instance lookup that is ending.</param>
+            <param name="newInstanceActivated">True if a new instance was created as part of the operation.</param>
+        </member>
+        <member name="P:Autofac.Core.Resolving.InstanceLookupEndingEventArgs.NewInstanceActivated">
+            <summary>
+            True if a new instance was created as part of the operation.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Resolving.InstanceLookupEndingEventArgs.InstanceLookup">
+            <summary>
+            The instance lookup operation that is ending.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Resolving.InstanceLookupBeginningEventArgs">
+            <summary>
+            Fired when instance lookup is complete.
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.Resolving.InstanceLookupBeginningEventArgs.#ctor(Autofac.Core.Resolving.IInstanceLookup)">
+            <param name="instanceLookup">The instance lookup that is ending.</param>
+        </member>
+        <member name="P:Autofac.Core.Resolving.InstanceLookupBeginningEventArgs.InstanceLookup">
+            <summary>
+            The instance lookup operation that is beginning.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Resolving.ResolveOperationBeginningEventArgs">
+            <summary>
+            Describes the commencement of a new resolve operation.
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.Resolving.ResolveOperationBeginningEventArgs.#ctor(Autofac.Core.Resolving.IResolveOperation)">
+            <summary>
+            Create an instance of the <see cref="T:Autofac.Core.Resolving.ResolveOperationBeginningEventArgs"/> class.
+            </summary>
+            <param name="resolveOperation">The resolve operation that is beginning.</param>
+        </member>
+        <member name="P:Autofac.Core.Resolving.ResolveOperationBeginningEventArgs.ResolveOperation">
+            <summary>
+            The resolve operation that is beginning.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Registration.ComponentRegistrationLifetimeDecorator">
+            <summary>
+            Wraps a component registration, switching its lifetime.
+            </summary>
+        </member>
+        <member name="T:Autofac.Util.Disposable">
+            <summary>
+            Base class for disposable objects.
+            </summary>
+        </member>
+        <member name="M:Autofac.Util.Disposable.Dispose">
+            <summary>
+            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+            </summary>
+        </member>
+        <member name="M:Autofac.Util.Disposable.Dispose(System.Boolean)">
+            <summary>
+            Releases unmanaged and - optionally - managed resources
+            </summary>
+            <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
+        </member>
+        <member name="P:Autofac.Util.Disposable.IsDisposed">
+            <summary>
+            Returns true if the current instance has been disposed; otherwise false;
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.IComponentRegistration">
+            <summary>
+            Describes a logical component within the container.
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.IComponentRegistration.RaisePreparing(Autofac.IComponentContext,System.Collections.Generic.IEnumerable{Autofac.Core.Parameter}@)">
+            <summary>
+            Called by the container when an instance is required.
+            </summary>
+            <param name="context">The context in which the instance will be activated.</param>
+            <param name="parameters">Parameters for activation. These may be modified by the event handler.</param>
+        </member>
+        <member name="M:Autofac.Core.IComponentRegistration.RaiseActivating(Autofac.IComponentContext,System.Collections.Generic.IEnumerable{Autofac.Core.Parameter},System.Object@)">
+            <summary>
+            Called by the container once an instance has been constructed.
+            </summary>
+            <param name="context">The context in which the instance was activated.</param>
+            <param name="parameters">The parameters supplied to the activator.</param>
+            <param name="instance">The instance.</param>
+        </member>
+        <member name="M:Autofac.Core.IComponentRegistration.RaiseActivated(Autofac.IComponentContext,System.Collections.Generic.IEnumerable{Autofac.Core.Parameter},System.Object)">
+            <summary>
+            Called by the container once an instance has been fully constructed, including
+            any requested objects that depend on the instance.
+            </summary>
+            <param name="context">The context in which the instance was activated.</param>
+            <param name="parameters">The parameters supplied to the activator.</param>
+            <param name="instance">The instance.</param>
+        </member>
+        <member name="P:Autofac.Core.IComponentRegistration.Id">
+            <summary>
+            A unique identifier for this component (shared in all sub-contexts.)
+            This value also appears in Services.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IComponentRegistration.Activator">
+            <summary>
+            The activator used to create instances.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IComponentRegistration.Lifetime">
+            <summary>
+            The lifetime associated with the component.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IComponentRegistration.Sharing">
+            <summary>
+            Whether the component instances are shared or not.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IComponentRegistration.Ownership">
+            <summary>
+            Whether the instances of the component should be disposed by the container.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IComponentRegistration.Services">
+            <summary>
+            The services provided by the component.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IComponentRegistration.Metadata">
+            <summary>
+            Additional data associated with the component.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.IComponentRegistration.Target">
+            <summary>
+            The component registration upon which this registration is based.
+            </summary>
+        </member>
+        <member name="E:Autofac.Core.IComponentRegistration.Preparing">
+            <summary>
+            Fired when a new instance is required. The instance can be
+            provided in order to skip the regular activator, by setting the Instance property in
+            the provided event arguments.
+            </summary>
+        </member>
+        <member name="E:Autofac.Core.IComponentRegistration.Activating">
+            <summary>
+            Fired when a new instance is being activated. The instance can be
+            wrapped or switched at this time by setting the Instance property in
+            the provided event arguments.
+            </summary>
+        </member>
+        <member name="E:Autofac.Core.IComponentRegistration.Activated">
+            <summary>
+            Fired when the activation process for a new instance is complete.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Registration.ComponentRegistrationResources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Registration.ComponentRegistrationResources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Registration.ComponentRegistrationResources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Registration.ComponentRegistrationResources.ToStringFormat">
+            <summary>
+              Looks up a localized string similar to Activator = {0}, Services = [{1}], Lifetime = {2}, Sharing = {3}, Ownership = {4}.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Registration.ExternalRegistrySource">
+            <summary>
+            Pulls registrations from another component registry.
+            Excludes most auto-generated registrations - currently has issues with
+            collection registrations.
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.Registration.ExternalRegistrySource.#ctor(Autofac.Core.IComponentRegistry)">
+            <summary>
+            Create an external registry source that draws components from
+            <paramref name="registry"/>.
+            </summary>
+            <param name="registry">Component registry to pull registrations from.</param>
+        </member>
+        <member name="M:Autofac.Core.Registration.ExternalRegistrySource.RegistrationsFor(Autofac.Core.Service,System.Func{Autofac.Core.Service,System.Collections.Generic.IEnumerable{Autofac.Core.IComponentRegistration}})">
+            <summary>
+            Retrieve registrations for an unregistered service, to be used
+            by the container.
+            </summary>
+            <param name="service">The service that was requested.</param>
+            <param name="registrationAccessor">A function that will return existing registrations for a service.</param>
+            <returns>Registrations providing the service.</returns>
+        </member>
+        <member name="P:Autofac.Core.Registration.ExternalRegistrySource.IsAdapterForIndividualComponents">
+            <summary>
+            In this case because the components that are adapted do not come from the same
+            logical scope, we must return false to avoid duplicating them.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Registration.ScopeRestrictedRegistry">
+            <summary>
+            Switches components with a RootScopeLifetime (singletons) with
+            decorators exposing MatchingScopeLifetime targeting the specified scope.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Registration.ComponentRegistry">
+            <summary>
+            Maps services onto the components that provide them.
+            </summary>
+            <remarks>
+            The component registry provides services directly from components,
+            and also uses <see cref="T:Autofac.Core.IRegistrationSource"/> to generate components
+            on-the-fly or as adapters for other components. A component registry
+            is normally used through a <see cref="T:Autofac.ContainerBuilder"/>, and not
+            directly by application code.
+            </remarks>
+        </member>
+        <member name="F:Autofac.Core.Registration.ComponentRegistry._synchRoot">
+            <summary>
+            Protects instance variables from concurrent access.
+            </summary>
+        </member>
+        <member name="F:Autofac.Core.Registration.ComponentRegistry._dynamicRegistrationSources">
+            <summary>
+            External registration sources.
+            </summary>
+        </member>
+        <member name="F:Autofac.Core.Registration.ComponentRegistry._registrations">
+            <summary>
+            All registrations.
+            </summary>
+        </member>
+        <member name="F:Autofac.Core.Registration.ComponentRegistry._serviceInfo">
+            <summary>
+            Keeps track of the status of registered services.
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.Registration.ComponentRegistry.Dispose(System.Boolean)">
+            <summary>
+            Releases unmanaged and - optionally - managed resources
+            </summary>
+            <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
+        </member>
+        <member name="M:Autofac.Core.Registration.ComponentRegistry.TryGetRegistration(Autofac.Core.Service,Autofac.Core.IComponentRegistration@)">
+            <summary>
+            Attempts to find a default registration for the specified service.
+            </summary>
+            <param name="service">The service to look up.</param>
+            <param name="registration">The default registration for the service.</param>
+            <returns>True if a registration exists.</returns>
+        </member>
+        <member name="M:Autofac.Core.Registration.ComponentRegistry.IsRegistered(Autofac.Core.Service)">
+            <summary>
+            Determines whether the specified service is registered.
+            </summary>
+            <param name="service">The service to test.</param>
+            <returns>True if the service is registered.</returns>
+        </member>
+        <member name="M:Autofac.Core.Registration.ComponentRegistry.Register(Autofac.Core.IComponentRegistration)">
+            <summary>
+            Register a component.
+            </summary>
+            <param name="registration">The component registration.</param>
+        </member>
+        <member name="M:Autofac.Core.Registration.ComponentRegistry.Register(Autofac.Core.IComponentRegistration,System.Boolean)">
+            <summary>
+            Register a component.
+            </summary>
+            <param name="registration">The component registration.</param>
+            <param name="preserveDefaults">If true, existing defaults for the services provided by the
+            component will not be changed.</param>
+        </member>
+        <member name="M:Autofac.Core.Registration.ComponentRegistry.RegistrationsFor(Autofac.Core.Service)">
+            <summary>
+            Selects from the available registrations after ensuring that any
+            dynamic registration sources that may provide <paramref name="service"/>
+            have been invoked.
+            </summary>
+            <param name="service">The service for which registrations are sought.</param>
+            <returns>Registrations supporting <paramref name="service"/>.</returns>
+        </member>
+        <member name="M:Autofac.Core.Registration.ComponentRegistry.AddRegistrationSource(Autofac.Core.IRegistrationSource)">
+            <summary>
+            Add a registration source that will provide registrations on-the-fly.
+            </summary>
+            <param name="source">The source to register.</param>
+        </member>
+        <member name="P:Autofac.Core.Registration.ComponentRegistry.Registrations">
+            <summary>
+            Enumerate the registered components.
+            </summary>
+        </member>
+        <member name="E:Autofac.Core.Registration.ComponentRegistry.Registered">
+            <summary>
+            Fired whenever a component is registered - either explicitly or via a
+            <see cref="T:Autofac.Core.IRegistrationSource"/>.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Registration.ComponentRegistry.Sources">
+            <summary>
+            Gets the registration sources that are used by the registry.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Registration.ComponentRegistry.HasLocalComponents">
+            <summary>
+            True if the registry contains its own components; false if it is forwarding
+            registrations from another external registry.
+            </summary>
+            <remarks>This property is used when walking up the scope tree looking for
+            registrations for a new customised scope. (See issue 336.)</remarks>
+        </member>
+        <member name="E:Autofac.Core.Registration.ComponentRegistry.RegistrationSourceAdded">
+            <summary>
+            Fired when an <see cref="T:Autofac.Core.IRegistrationSource"/> is added to the registry.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Registration.ServiceRegistrationInfo">
+            <summary>
+            Tracks the services known to the registry.
+            </summary>
+        </member>
+        <member name="F:Autofac.Core.Registration.ServiceRegistrationInfo._sourcesToQuery">
+            <summary>
+            Used for bookkeeping so that the same source is not queried twice (may be null.)
+            </summary>
+        </member>
+        <member name="M:Autofac.Core.Registration.ServiceRegistrationInfo.#ctor(Autofac.Core.Service)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Autofac.Core.Registration.ServiceRegistrationInfo"/> class.
+            </summary>
+            <param name="service">The tracked service.</param>
+        </member>
+        <member name="P:Autofac.Core.Registration.ServiceRegistrationInfo.IsInitialized">
+            <summary>
+            The first time a service is requested, initialization (e.g. reading from sources)
+            happens. This value will then be set to true. Calling many methods on this type before
+            initialisation is an error.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Registration.ServiceRegistrationInfo.Implementations">
+            <summary>
+            The known implementations.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Registration.ServiceRegistrationInfo.IsRegistered">
+            <summary>
+            True if any implementations are known.
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Registration.ServiceRegistrationInfoResources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Registration.ServiceRegistrationInfoResources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Registration.ServiceRegistrationInfoResources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Registration.ServiceRegistrationInfoResources.NotDuringInitialisation">
+            <summary>
+              Looks up a localized string similar to The operation is only valid during intialisation..
+            </summary>
+        </member>
+        <member name="P:Autofac.Core.Registration.ServiceRegistrationInfoResources.NotInitialised">
+            <summary>
+              Looks up a localized string similar to The operation is not valid until the object is initalised..
+            </summary>
+        </member>
+        <member name="T:Autofac.Core.Resolving.ComponentActivationResources">
+            <summary>