Commit 82938d1

mokhan <mokhan@ce5e1baf-6525-42e4-a1b2-857ea38da20a>
2009-02-25 21:50:20
cleaned up the task pane view.
git-svn-id: https://svn.xp-dev.com/svn/mokhan-mo.money@10 ce5e1baf-6525-42e4-a1b2-857ea38da20a
1 parent bd4c089
trunk/build/lib/app/managed.extensibility.framework/System.ComponentModel.Composition.dll
Binary file
trunk/build/lib/app/managed.extensibility.framework/System.ComponentModel.Composition.pdb
Binary file
trunk/build/lib/app/managed.extensibility.framework/System.ComponentModel.Composition.xml
@@ -24,1068 +24,2099 @@
             <param name="value"></param>
             <returns></returns>
         </member>
-        <member name="M:Microsoft.Internal.LazyInit.Init``1(``0@,System.Func{``0})">
-            <summary>
-            Lazily init an item and return stats as to whether or not you were the winner who
-            succeeded in initing that item. Takes a delegate that creates the object to be
-            initialized with, that delegate needs to be idempotent.
-            
-            A common example might be initing some static member f of type Foo:
-            
-                class Bar
-                {
-                    static Foo f;
-                    public static Foo F
-                    {
-                        get
-                        {
-                            LazyInit.Init(ref f, () => new Foo());
-                            return f;
-                        }
-                    }
-                }
-            </summary>
-            <returns>Whether or not this particular call to Init was responsible for Initializing the member</returns>
-        </member>
-        <member name="T:System.Strings">
+        <member name="T:Microsoft.Internal.Strings">
             <summary>
               A strongly-typed resource class, for looking up localized strings, etc.
             </summary>
         </member>
-        <member name="P:System.Strings.ResourceManager">
+        <member name="P:Microsoft.Internal.Strings.ResourceManager">
             <summary>
               Returns the cached ResourceManager instance used by this class.
             </summary>
         </member>
-        <member name="P:System.Strings.Culture">
+        <member name="P:Microsoft.Internal.Strings.Culture">
             <summary>
               Overrides the current thread's CurrentUICulture property for all
               resource lookups using this strongly typed resource class.
             </summary>
         </member>
-        <member name="P:System.Strings.AdapterCannotAdaptFromAndToSameContract">
-            <summary>
-              Looks up a localized string similar to A part in the container exports an adapter method that has metadata indicating that it adapts to and from contract &apos;{0}&apos;. Adapter methods must adapt to and from different contracts..
-            </summary>
-        </member>
-        <member name="P:System.Strings.AdapterContractMismatch">
-            <summary>
-              Looks up a localized string similar to An adapter in the container indicates that it adapts to contract &apos;{0}&apos;, however, it returned an export with the contract &apos;{1}&apos;..
-            </summary>
-        </member>
-        <member name="P:System.Strings.AdapterTypeMismatch">
+        <member name="P:Microsoft.Internal.Strings.Adapter_CannotAdaptFromAndToSameContract">
             <summary>
-              Looks up a localized string similar to A part in the container exports an adapter method as type {0}. Adapter methods must be of type {1}..
+              Looks up a localized string similar to The adapter &apos;{0}&apos; indicates that it adapts to and from the same contract; &apos;{1}&apos;. Adapter must adapt to and from different contracts..
             </summary>
         </member>
-        <member name="P:System.Strings.AdapterTypeNull">
+        <member name="P:Microsoft.Internal.Strings.Adapter_CannotAdaptNullOrEmptyFromOrToContract">
             <summary>
-              Looks up a localized string similar to A part in the container in the container exports an adapter method as a null reference (Nothing in Visual Basic). Adapter methods must be of type {1}..
+              Looks up a localized string similar to The adapter &apos;{0}&apos; provided an null, empty or malformed &apos;to&apos; and/or &apos;from&apos; contract. Adapters must specify both &apos;to&apos; and &apos;from&apos; contracts using a string or a type..
             </summary>
         </member>
-        <member name="P:System.Strings.Argument_AssemblyReflectionOnly">
+        <member name="P:Microsoft.Internal.Strings.Adapter_ContractMismatch">
             <summary>
-              Looks up a localized string similar to {0} is a reflection-only assembly which is not supported..
+              Looks up a localized string similar to The adapter &apos;{0}&apos; indicates that it adapts to contract &apos;{1}&apos;, however, it returned an export with contract &apos;{2}&apos;. Adapters must return exports that have the same contract that the adapter indicates it adapts to..
             </summary>
         </member>
-        <member name="P:System.Strings.Argument_ElementReflectionOnlyType">
+        <member name="P:Microsoft.Internal.Strings.Adapter_ExceptionDuringAdapt">
             <summary>
-              Looks up a localized string similar to {0} contains a reflection-only type which is not supported..
+              Looks up a localized string similar to The adapter &apos;{0}&apos; threw an exception while to adapt from contract &apos;{1}&apos; to contract &apos;{2}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.Argument_NullElement">
+        <member name="P:Microsoft.Internal.Strings.Adapter_TypeMismatch">
             <summary>
-              Looks up a localized string similar to {0} cannot contain a null (Nothing in Visual Basic) element..
+              Looks up a localized string similar to The available adapter &apos;{0}&apos; is of type &apos;{1}&apos;. Adapters must be of type &apos;{2}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.ArgumentException_EmptyString">
+        <member name="P:Microsoft.Internal.Strings.Adapter_TypeNull">
             <summary>
-              Looks up a localized string similar to {0} cannot be an empty string (&quot;&quot;)..
+              Looks up a localized string similar to The available adapter &apos;{0}&apos; is a null reference (Nothing in Visual Basic). Adapter must be of type &apos;{2}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.ArgumentOutOfRange_InvalidEnum">
+        <member name="P:Microsoft.Internal.Strings.Argument_AssemblyReflectionOnly">
             <summary>
-              Looks up a localized string similar to The value of argument &apos;{0}&apos; ({1}) is invalid for Enum type &apos;{2}&apos;..
+              Looks up a localized string similar to &apos;{0}&apos; is a reflection-only assembly which is not supported..
             </summary>
         </member>
-        <member name="P:System.Strings.ArgumentValueType">
+        <member name="P:Microsoft.Internal.Strings.Argument_ElementReflectionOnlyType">
             <summary>
-              Looks up a localized string similar to The argument was a value type which is not supported..
+              Looks up a localized string similar to &apos;{0}&apos; contains a reflection-only type which is not supported..
             </summary>
         </member>
-        <member name="P:System.Strings.AssemblyFileNotFoundOrWrongType">
+        <member name="P:Microsoft.Internal.Strings.Argument_ExportsEmpty">
             <summary>
-              Looks up a localized string similar to Assembly file {0} is either not found or not a dll or exe file..
+              Looks up a localized string similar to &apos;exports&apos; cannot be empty when ImportDefinition.ImportCardinality is ImportCardinality.ExactlyOne..
             </summary>
         </member>
-        <member name="P:System.Strings.AssemblyInformationCannotBeCached">
+        <member name="P:Microsoft.Internal.Strings.Argument_ExportsTooMany">
             <summary>
-              Looks up a localized string similar to Information about the assembly &apos;{0}&apos; because it has been loaded from the network or the byte stream. Only assemblies loaded from files on disk are supported..
+              Looks up a localized string similar to &apos;exports&apos; cannot contain more than one element when ImportDefinition.ImportCardinality is ImportCardinality.ZeroOrOne or ImportCardinality.ExactlyOne..
             </summary>
         </member>
-        <member name="P:System.Strings.BinderSelectFieldFailed">
+        <member name="P:Microsoft.Internal.Strings.Argument_NullElement">
             <summary>
-              Looks up a localized string similar to The field name {0} could not be resolved to any field in this structure..
+              Looks up a localized string similar to &apos;{0}&apos; cannot contain a null (Nothing in Visual Basic) element..
             </summary>
         </member>
-        <member name="P:System.Strings.CacheableCatalogMustHaveProperConstructor">
+        <member name="P:Microsoft.Internal.Strings.ArgumentException_EmptyString">
             <summary>
-              Looks up a localized string similar to The catalog &apos;{0}&apos; cannot be cached because it doesn&apos;t have a public constructor that accepts &apos;{1}&apos;  as an argument..
+              Looks up a localized string similar to &apos;{0}&apos; cannot be an empty string (&quot;&quot;)..
             </summary>
         </member>
-        <member name="P:System.Strings.CachingFieldNotFound">
+        <member name="P:Microsoft.Internal.Strings.ArgumentOutOfRange_InvalidEnum">
             <summary>
-              Looks up a localized string similar to Invalid cache : field &apos;{1}&apos; on type &apos;{0}&apos; is not found..
+              Looks up a localized string similar to The value of argument &apos;{0}&apos; ({1}) is invalid for Enum type &apos;{2}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.CachingMethodNotFound">
+        <member name="P:Microsoft.Internal.Strings.ArgumentValueType">
             <summary>
-              Looks up a localized string similar to Invalid cache : method &apos;{1}&apos; on type &apos;{0}&apos; is not found..
+              Looks up a localized string similar to The argument was a value type which is not supported..
             </summary>
         </member>
-        <member name="P:System.Strings.CachingTypeNotFound">
+        <member name="P:Microsoft.Internal.Strings.AssemblyFileNotFoundOrWrongType">
             <summary>
-              Looks up a localized string similar to Invalid cache : type &apos;{0}&apos; is not found..
+              Looks up a localized string similar to Assembly file {0} is either not found or not a dll or exe file..
             </summary>
         </member>
-        <member name="P:System.Strings.CannotChangeOnceSet">
+        <member name="P:Microsoft.Internal.Strings.AssemblyInformationCannotBeCached">
             <summary>
-              Looks up a localized string similar to Cannot change the value of {0} once it has been set..
+              Looks up a localized string similar to Information about the assembly &apos;{0}&apos; because it has been loaded from the network or the byte stream. Only assemblies loaded from files on disk are supported..
             </summary>
         </member>
-        <member name="P:System.Strings.CannotChangePackageDescription">
+        <member name="P:Microsoft.Internal.Strings.CacheableCatalogMustHaveProperConstructor">
             <summary>
-              Looks up a localized string similar to A package description cannot be changed once it has been added to a catalog..
+              Looks up a localized string similar to The catalog &apos;{0}&apos; cannot be cached because it doesn&apos;t have a public constructor that accepts &apos;{1}&apos;  as an argument..
             </summary>
         </member>
-        <member name="P:System.Strings.CannotCreateMetadataView">
+        <member name="P:Microsoft.Internal.Strings.CachingFieldNotFound">
             <summary>
-              Looks up a localized string similar to Cannot create a MetadataView of metadataViewType &apos;{0}&apos;..
+              Looks up a localized string similar to Invalid cache : field &apos;{1}&apos; on type &apos;{0}&apos; is not found..
             </summary>
         </member>
-        <member name="P:System.Strings.CannotHaveNonStaticExportsInStaticComponentPart">
+        <member name="P:Microsoft.Internal.Strings.CachingMethodNotFound">
             <summary>
-              Looks up a localized string similar to Cannot have non-static exports in static component part &apos;{0}&apos;..
+              Looks up a localized string similar to Invalid cache : method &apos;{1}&apos; on type &apos;{0}&apos; is not found..
             </summary>
         </member>
-        <member name="P:System.Strings.CanOnlyExportFieldsPropertiesOrMethods">
+        <member name="P:Microsoft.Internal.Strings.CachingTypeNotFound">
             <summary>
-              Looks up a localized string similar to Can only export fields, properties, or methods..
+              Looks up a localized string similar to Invalid cache : type &apos;{0}&apos; is not found..
             </summary>
         </member>
-        <member name="P:System.Strings.CanOnlySetToTrueOrFalse">
+        <member name="P:Microsoft.Internal.Strings.CannotCreateMetadataView">
             <summary>
-              Looks up a localized string similar to Can only set {0} to true or false..
+              Looks up a localized string similar to Cannot create a MetadataView of metadataViewType &apos;{0}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.CardinalityMismatch_NoExports">
+        <member name="P:Microsoft.Internal.Strings.CardinalityMismatch_NoExports">
             <summary>
               Looks up a localized string similar to No exports were found that match the constraint &apos;{0}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.CardinalityMismatch_TooManyExports">
+        <member name="P:Microsoft.Internal.Strings.CardinalityMismatch_TooManyExports">
             <summary>
               Looks up a localized string similar to More than one exports were found that match the constraint &apos;{0}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.CastStructuredValueFail">
-            <summary>
-              Looks up a localized string similar to Unable to cast structured value to &apos;{0}&apos;, because it is type &apos;{1}&apos;..
-            </summary>
-        </member>
-        <member name="P:System.Strings.CatalogInvalidPartDependency">
+        <member name="P:Microsoft.Internal.Strings.CatalogDoesNotSupportCaching">
             <summary>
-              Looks up a localized string similar to The part dependencies could not be resolved by this Catalog..
+              Looks up a localized string similar to The catalog  doesn&apos;t support caching..
             </summary>
         </member>
-        <member name="P:System.Strings.CatalogIsNotCacheable">
+        <member name="P:Microsoft.Internal.Strings.CatalogIsNotCacheable">
             <summary>
               Looks up a localized string similar to The catalog cannot be cached as at least one of the contained catalogs does not support caching : &apos;{0}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.ComposeTookTooManyIterations">
+        <member name="P:Microsoft.Internal.Strings.CompositionElement_UnknownOrigin">
             <summary>
-              Looks up a localized string similar to The composition failed because it did not complete within &apos;{0}&apos; iterations. Most likely caused by a cycle in the dependency graph of some component which has a factory creation policy..
+              Looks up a localized string similar to Unknown Origin.
             </summary>
         </member>
-        <member name="P:System.Strings.CompositionContainer_ResolverAlreadyOwnedByContainer">
+        <member name="P:Microsoft.Internal.Strings.CompositionEngine_ComposeTookTooManyIterations">
             <summary>
-              Looks up a localized string similar to The specified ValueResolver is already owned by another CompositionContainer..
+              Looks up a localized string similar to The composition failed because it did not complete within &apos;{0:N0}&apos; iterations. This is most likely caused by a cycle in the dependency graph of a part which is marked with a non-shared creation policy..
             </summary>
         </member>
-        <member name="P:System.Strings.CompositionContainerIsLockedForNotify">
+        <member name="P:Microsoft.Internal.Strings.CompositionEngine_PartCannotActivate">
             <summary>
-              Looks up a localized string similar to Operation can not be completed at this time because the CompositionContainer cannot be modified or queried while components are being notified that imports have been completed..
+              Looks up a localized string similar to Cannot activate part &apos;{0}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.CompositionExceptionMessage">
+        <member name="P:Microsoft.Internal.Strings.CompositionEngine_PartCannotGetExportedObject">
             <summary>
-              Looks up a localized string similar to The composition produced {0} composition issues. The first few issues of severity level &apos;error&apos; are provided below. Review the Issues collection for more detailed information..
+              Looks up a localized string similar to Cannot get export &apos;{0}&apos; from part &apos;{1}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.ConstructedGenericMethodsNotSupported">
+        <member name="P:Microsoft.Internal.Strings.CompositionEngine_PartCannotSetImport">
             <summary>
-              Looks up a localized string similar to Constructed generic methods are not supported..
+              Looks up a localized string similar to Cannot set import &apos;{0}&apos; on part &apos;{1}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.ContractMismatch_ExportedObjectCannotBeCastToT">
+        <member name="P:Microsoft.Internal.Strings.CompositionEngine_PartCycle">
             <summary>
-              Looks up a localized string similar to Unable to cast the underlying exported object of type &apos;{0}&apos; to type &apos;{1}&apos;..
+              Looks up a localized string similar to Cannot compose part &apos;{0}&apos; because a cycle exists in the dependencies between the exports being composed. To break this cycle, consider changing some imports from constructor to property injection..
             </summary>
         </member>
-        <member name="P:System.Strings.ContractServicesCantCast">
+        <member name="P:Microsoft.Internal.Strings.CompositionException_ErrorPrefix">
             <summary>
-              Looks up a localized string similar to Can&apos;t cast to type &apos;{0}&apos; from type &apos;{1}&apos;.
+              Looks up a localized string similar to Resulting in:.
             </summary>
         </member>
-        <member name="P:System.Strings.ContractServicesCantCastArgumentTypes">
+        <member name="P:Microsoft.Internal.Strings.CompositionException_MultipleErrorsWithMultiplePaths">
             <summary>
-              Looks up a localized string similar to Unable to project to contract &apos;{0}&apos; because method &apos;{1}&apos; has an argument &apos;{2}&apos; of type &apos;{3}&apos; which is not structurally compatible with the source argument of type &apos;{4}&apos;..
+              Looks up a localized string similar to The composition produced multiple composition errors, with {0:N0} root causes. The root causes are provided below..
             </summary>
         </member>
-        <member name="P:System.Strings.ContractServicesCantCastInsufficientArguments">
+        <member name="P:Microsoft.Internal.Strings.CompositionException_ReviewErrorProperty">
             <summary>
-              Looks up a localized string similar to Unable to project to contract &apos;{0}&apos; because method &apos;{1}&apos; provides &apos;{2}&apos; arguments and at least &apos;{3}&apos; are required..
+              Looks up a localized string similar to Review the CompositionException.Errors property for more detailed information..
             </summary>
         </member>
-        <member name="P:System.Strings.ContractServicesCantCastMarkerInterface">
+        <member name="P:Microsoft.Internal.Strings.CompositionException_SingleErrorWithMultiplePaths">
             <summary>
-              Looks up a localized string similar to Can&apos;t cast to type &apos;{0}&apos; because  it is a marker interface (it does not have any members).
+              Looks up a localized string similar to The composition produced a single composition error, with {0:N0} root causes. The root causes are provided below..
             </summary>
         </member>
-        <member name="P:System.Strings.ContractServicesCantCastMissingFields">
+        <member name="P:Microsoft.Internal.Strings.CompositionException_SingleErrorWithSinglePath">
             <summary>
-              Looks up a localized string similar to Can&apos;t cast to type &apos;{0}&apos; because the source record is missing fields {1}.
+              Looks up a localized string similar to The composition produced a single composition error. The root cause is provided below..
             </summary>
         </member>
-        <member name="P:System.Strings.ContractservicesCantCastNoConstructor">
+        <member name="P:Microsoft.Internal.Strings.ContractMismatch_ExportedObjectCannotBeCastToT">
             <summary>
-              Looks up a localized string similar to Can&apos;t cast to type &apos;{0}&apos; because it does not have an accessible zero-argument constructor..
+              Looks up a localized string similar to Cannot cast the underlying exported object of type &apos;{0}&apos; to type &apos;{1}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.ContractServicesCantCastNull">
+        <member name="P:Microsoft.Internal.Strings.DirectoryNotFound">
             <summary>
-              Looks up a localized string similar to Can&apos;t cast null to type &apos;{0}&apos;.
+              Looks up a localized string similar to Directory &apos;{0}&apos; could not be found..
             </summary>
         </member>
-        <member name="P:System.Strings.ContractServicesCantCastSequenceCollection">
+        <member name="P:Microsoft.Internal.Strings.ExportDefinitionNotOnThisComposablePart">
             <summary>
-              Looks up a localized string similar to Can&apos;t cast to type &apos;{0} because the source of type &apos;{1}&apos; is not structurally compatible with ICollection&lt;StructuredValue&gt;.
+              Looks up a localized string similar to {0} did not originate from the ExportDefinitions property on this ComposablePart or its ComposablePartDefinition..
             </summary>
         </member>
-        <member name="P:System.Strings.ContractServicesCantCastSequenceIncompatibleItems">
+        <member name="P:Microsoft.Internal.Strings.ImportDefinitionNotOnThisComposablePart">
             <summary>
-              Looks up a localized string similar to Can&apos;t cast to type &apos;{0}&apos; because the source items are not compatible with &apos;{1}&apos;.
+              Looks up a localized string similar to {0} did not originate from the ImportDefinitions property on this ComposablePart or its ComposablePartDefinition..
             </summary>
         </member>
-        <member name="P:System.Strings.ContractServicesCantCastSequenceList">
+        <member name="P:Microsoft.Internal.Strings.ImportNotSetOnPart">
             <summary>
-              Looks up a localized string similar to Can&apos;t cast to type &apos;{0} because the source of type &apos;{1}&apos; is not structurally compatible with IList&lt;StructuredValue&gt;.
+              Looks up a localized string similar to Could not finishing composing object of type &apos;{0}&apos;. The import &apos;{1}&apos; was not satisfied..
             </summary>
         </member>
-        <member name="P:System.Strings.ContractServicesCantCastToAtom">
+        <member name="P:Microsoft.Internal.Strings.InternalExceptionMessage">
             <summary>
-              Looks up a localized string similar to Can&apos;t cast to type &apos;{0}&apos; because it is an atom and the source of type &apos;{1}&apos; is not nominally compatible.
+              Looks up a localized string similar to Internal error occurred. Additional information: &apos;{0}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.ContractServicesCantCastToOpenGenericType">
+        <member name="P:Microsoft.Internal.Strings.InvalidCacheToken">
             <summary>
-              Looks up a localized string similar to Can&apos;t cast to type &apos;{0}&apos; because it is an open generic type..
+              Looks up a localized string similar to Invalid cache token : &apos;{0}&apos;.
             </summary>
         </member>
-        <member name="P:System.Strings.ContractServicesEventProxyIsNotStructureProxy">
+        <member name="P:Microsoft.Internal.Strings.InvalidMetadataView">
             <summary>
-              Looks up a localized string similar to The proxy object is not an IStructureProjection.  Event proxy only works if the structure wraps a real object with a corresponding event of the same name..
+              Looks up a localized string similar to The Type &apos;{0}&apos; supplied is not a valid Metadata View..
             </summary>
         </member>
-        <member name="P:System.Strings.ContractServicesEventRValueNotADelegate">
+        <member name="P:Microsoft.Internal.Strings.InvalidOperation_DefinitionCannotBeRecomposed">
             <summary>
-              Looks up a localized string similar to Event proxy can only be called if the argument to the event is a delegate..
+              Looks up a localized string similar to &apos;definition&apos; cannot be set after OnComposed has been called because ImportDefinition.IsRecomposable is false..
             </summary>
         </member>
-        <member name="P:System.Strings.ContractServicesEventValueNotFound">
+        <member name="P:Microsoft.Internal.Strings.InvalidOperation_GetExportedObjectBeforePrereqImportSet">
             <summary>
-              Looks up a localized string similar to The proxy structure does not contain an event named &apos;{0}&apos;..
+              Looks up a localized string similar to GetExportedObject cannot be called before prerequisite import &apos;{0}&apos; has been set..
             </summary>
         </member>
-        <member name="P:System.Strings.ContractServicesRequiredFieldMissing">
+        <member name="P:Microsoft.Internal.Strings.InvalidOperationReentrantCompose">
             <summary>
-              Looks up a localized string similar to Required field &apos;{0}&apos; is missing from a record.
+              Looks up a localized string similar to A call to Compose occurred during a call to Compose on the same CompositionContainer object. Use the IsComposing property on CompositionContainer to ensure a composition is not already in progress before calling Compose..
             </summary>
         </member>
-        <member name="P:System.Strings.CustomDelegateTypesNotSupported">
+        <member name="P:Microsoft.Internal.Strings.MetadataItemNotSupported">
             <summary>
-              Looks up a localized string similar to Custom delegate types not yet supported....
+              Looks up a localized string similar to This export does not support the metadata item &apos;{0}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.DirectoryNotFound">
+        <member name="P:Microsoft.Internal.Strings.MustProvideExportNameWhenExportingMethods">
             <summary>
-              Looks up a localized string similar to Directory &apos;{0}&apos; could not be found..
+              Looks up a localized string similar to Must provide export name specifically when exporting methods..
             </summary>
         </member>
-        <member name="P:System.Strings.ExceptionDuringAdapt">
+        <member name="P:Microsoft.Internal.Strings.NotImplemented_NotOverriddenByDerived">
             <summary>
-              Looks up a localized string similar to An exception occurred while trying to adapt from contract &apos;{0}&apos; to contract &apos;{1}&apos;. Review the exception on the issue, and inspect the adapt method to correct the problem..
+              Looks up a localized string similar to The {0} member must be overridden by a derived class..
             </summary>
         </member>
-        <member name="P:System.Strings.ExceptionDuringComponentActivation">
+        <member name="P:Microsoft.Internal.Strings.NotSupportedReadOnlyDictionary">
             <summary>
-              Looks up a localized string similar to An exception occurred while trying to create an object of type &apos;{0}&apos;. Review the exception on the issue, and inspect the type to correct the problem..
+              Looks up a localized string similar to The underlying dictionary is read-only..
             </summary>
         </member>
-        <member name="P:System.Strings.ExceptionDuringGettingOfExport">
+        <member name="P:Microsoft.Internal.Strings.ObjectAlreadyInitialized">
             <summary>
-              Looks up a localized string similar to An exception occurred while trying to get the value of member ‘{0}’ on type ‘{1}’. Review the exception on the issue, and inspect the member to correct the problem..
+              Looks up a localized string similar to This property cannot be set after the object&apos;s public surface has been accessed..
             </summary>
         </member>
-        <member name="P:System.Strings.ExceptionDuringImportCompletedCallback">
+        <member name="P:Microsoft.Internal.Strings.ObjectMustBeInitialized">
             <summary>
-              Looks up a localized string similar to An exception occurred during ImportCompleted callback on type ‘{0}’. Review the exception on the issue, and inspect ImportCompleted to correct the problem..
+              Looks up a localized string similar to This object has not been initialized - the property &apos;{0}&apos; must be set..
             </summary>
         </member>
-        <member name="P:System.Strings.ExceptionDuringSettingOfImport">
+        <member name="P:Microsoft.Internal.Strings.ReflectionModel_ExportMethodTooManyParameters">
             <summary>
-              Looks up a localized string similar to An exception occurred while trying to set the value of member ‘{0}’ on type ‘{1}’. Review the exception on the issue, and inspect the member to correct the problem..
+              Looks up a localized string similar to Cannot create a delegate wrapper for method &apos;{0}&apos; because it has {1:N0} parameters. To be represented as one of the &apos;System.Action&apos; or &apos;System.Func&apos; delegate types, a method must have less than 5 parameters..
             </summary>
         </member>
-        <member name="P:System.Strings.ExportDefinitionNotOnThisComposablePart">
+        <member name="P:Microsoft.Internal.Strings.ReflectionModel_ExportNotReadable">
             <summary>
-              Looks up a localized string similar to {0} did not originate from the ExportDefinitions property on this ComposablePart or its ComposablePartDefinition..
+              Looks up a localized string similar to Cannot get the value of property &apos;{0}&apos;, because the member is not readable. The property must have an accessible getter..
             </summary>
         </member>
-        <member name="P:System.Strings.ExportNotFound">
+        <member name="P:Microsoft.Internal.Strings.ReflectionModel_ExportThrewException">
             <summary>
-              Looks up a localized string similar to Export not found.
+              Looks up a localized string similar to An exception occurred while trying to get the value of property &apos;{0}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.FailedToFindImplementationTypeForComponent">
+        <member name="P:Microsoft.Internal.Strings.ReflectionModel_ImportCollectionNotWritable">
             <summary>
-              Looks up a localized string similar to Unable to find a suitable implementation type for the part named &apos;{0}&apos; in the package named &apos;{1}&apos;..
+              Looks up a localized string similar to Cannot populate the value of enumerable field or property, &apos;{0}&apos; because the member&apos;s type does not have accessible &apos;Add&apos; and/or &apos;Clear&apos; methods. The member must be either a collection type, or writable and assignable from type &apos;{1}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.FieldIsReadOnly">
+        <member name="P:Microsoft.Internal.Strings.ReflectionModel_ImportCollectionNull">
             <summary>
-              Looks up a localized string similar to Field ({0}) is read-only and cannot be updated.
+              Looks up a localized string similar to Cannot populate the value of enumerable field or property &apos;{0}&apos; because the member returned null (Nothing in Visual Basic). The member must either be pre-initialized by the type, or writable and assignable from type &apos;{1}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.ImportCollectionFailedCollectionNotWritable">
+        <member name="P:Microsoft.Internal.Strings.ReflectionModel_ImportNotAssignableFromExport">
             <summary>
-              Looks up a localized string similar to Could not populate collection. A component of type &apos;{0}&apos; has a member named &apos;{1}&apos; importing the value &apos;{2}&apos; that is of type &apos;{3}&apos;. The Import is declared as a collection, but it is not a writable type..
+              Looks up a localized string similar to The export &apos;{0}&apos; is not assignable to type &apos;{1}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.ImportCollectionFailedCollectionNull">
+        <member name="P:Microsoft.Internal.Strings.ReflectionModel_ImportNotWritable">
             <summary>
-              Looks up a localized string similar to Could not populate null collection value. A component of type &apos;{0}&apos; has a member named &apos;{1}&apos; importing the value &apos;{2}&apos; that is a collection of type &apos;{3}&apos; that is initialized to null. It must be either initialized by the object or writable and assignable from type &apos;{4}&apos;..
+              Looks up a localized string similar to Cannot set the value of field or property &apos;{0}&apos; because the member is not writable. If the member is a property, it must have an accessible setter; otherwise, if it is a field, it must not be read-only..
             </summary>
         </member>
-        <member name="P:System.Strings.ImportCycle">
+        <member name="P:Microsoft.Internal.Strings.ReflectionModel_ImportThrewException">
             <summary>
-              Looks up a localized string similar to A cycle exists in the dependencies between the exports being composed. To break this cycle, consider changing some imports from constructor to property injection..
+              Looks up a localized string similar to An exception occurred while trying to set the value of property &apos;{0}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.ImportDefinitionNotOnThisComposablePart">
+        <member name="P:Microsoft.Internal.Strings.ReflectionModel_PartConstructorMissing">
             <summary>
-              Looks up a localized string similar to {0} did not originate from the ImportDefinitions property on this ComposablePart or its ComposablePartDefinition..
+              Looks up a localized string similar to Cannot create an instance of type &apos;{0}&apos; because a constructor could not be selected for construction. Ensure that the type either has a default constructor, or a single constructor marked with the &apos;System.ComponentModel.Composition.ImportingConstructorAttribute&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.ImportNotSetOnPart">
+        <member name="P:Microsoft.Internal.Strings.ReflectionModel_PartConstructorThrewException">
             <summary>
-              Looks up a localized string similar to Could not finishing composing object of type &apos;{0}&apos;. The import &apos;{1}&apos; was not satisfied..
+              Looks up a localized string similar to An exception occurred while trying to create an instance of type &apos;{0}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.ImportSingleValueFailedNotWritable">
+        <member name="P:Microsoft.Internal.Strings.ReflectionModel_PartImportCompletedThrewException">
             <summary>
-              Looks up a localized string similar to Could not set import value. A component of type &apos;{0}&apos; has a member named &apos;{1}&apos; importing the value &apos;{2}&apos; that is of type &apos;{3}&apos;. The import is not writable, verify that the types are assignable or if the member is a property verify that it has a setter..
+              Looks up a localized string similar to An exception occurred while calling the &apos;ImportCompleted&apos; method on type &apos;{0}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.InternalExceptionMessage">
+        <member name="P:Microsoft.Internal.Strings.SetMethodsNotSupported">
             <summary>
-              Looks up a localized string similar to Internal error occurred. Additional information: &apos;{0}&apos;..
+              Looks up a localized string similar to Set Methods not supported &apos;{0}&apos;..
             </summary>
         </member>
-        <member name="P:System.Strings.InvalidCacheToken">
+        <member name="P:Microsoft.Internal.Strings.TypeCatalog_Empty">
             <summary>
-              Looks up a localized string similar to Invalid cache token : &apos;{0}&apos;.
+              Looks up a localized string similar to &lt;Empty&gt;.
             </summary>
         </member>
-        <member name="P:System.Strings.InvalidExportMetadata">
+        <member name="P:Microsoft.Internal.Strings.UnsupportedCachedValue">
             <summary>
-              Looks up a localized string similar to Invalid metadata &apos;{0}&apos; on the export &apos;{1}&apos; was found. This could be because of  repeatedly using single item metadata, mixing single item metadata and collection metadata, multiple application of container specific metadata attribute on the same export member, or metadata provided by container specific attribute conflicting with those provided by general approach..
+              Looks up a localized string similar to Objects of type &apos;{0}&apos; cannot be written into the cache..
             </summary>
         </member>
-        <member name="P:System.Strings.InvalidMetadataView">
+        <member name="T:System.ComponentModel.Composition.Primitives.ComposablePart">
             <summary>
-              Looks up a localized string similar to The Type &apos;{0}&apos; supplied is not a valid Metadata View..
+                Defines the <see langword="abstract"/> base class for composable parts, which 
+                import and produce exported objects.
             </summary>
         </member>
-        <member name="P:System.Strings.InvalidOperationReentrantCompose">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePart.#ctor">
             <summary>
-              Looks up a localized string similar to A call to Compose occurred during a call to Compose on the same CompositionContainer object. Use the IsComposing property on CompositionContainer to ensure a composition is not already in progress before calling Compose..
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> class.
             </summary>
         </member>
-        <member name="P:System.Strings.MembersDictionaryCantClear">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePart.Dispose">
             <summary>
-              Looks up a localized string similar to Unable to Clear the dictionary because it is read only..
+                Releases all resources used by the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>.
             </summary>
         </member>
-        <member name="P:System.Strings.MetadataItemNotSupported">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePart.OnComposed">
             <summary>
-              Looks up a localized string similar to This export does not support the metadata item &apos;{0}&apos;..
+                Called by the composition engine when all required imports on the part have been
+                satisfied.
             </summary>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> has been disposed of.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException">
+                An error occurred activating the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>.
+            </exception>
         </member>
-        <member name="P:System.Strings.MustProvideExportNameWhenExportingMethods">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePart.GetExportedObject(System.ComponentModel.Composition.Primitives.ExportDefinition)">
             <summary>
-              Looks up a localized string similar to Must provide export name specifically when exporting methods..
+                Gets the exported object described by the specified definition.
             </summary>
+            <param name="definition">
+                One of the <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> objects from the 
+                <see cref="P:System.ComponentModel.Composition.Primitives.ComposablePart.ExportDefinitions"/> property describing the exported object
+                to return.
+            </param>
+            <returns>
+                The exported <see cref="T:System.Object"/> described by <paramref name="definition"/>.
+            </returns>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="definition"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ArgumentException">
+                <paramref name="definition"/> did not originate from the <see cref="P:System.ComponentModel.Composition.Primitives.ComposablePart.ExportDefinitions"/>
+                property on the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>.
+            </exception>
+            <exception cref="T:System.InvalidOperationException">
+                One or more pre-requisite imports, indicated by <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.IsPrerequisite"/>,
+                have not been set.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> has been disposed of.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException">
+                An error occurred getting the exported object described by the <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/>.
+            </exception>
         </member>
-        <member name="P:System.Strings.NoExportsThatMatchConstraint">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePart.SetImport(System.ComponentModel.Composition.Primitives.ImportDefinition,System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Primitives.Export})">
             <summary>
-              Looks up a localized string similar to There were no exports found that match the constraint &apos;{0}&apos;. The import for this contract requires exactly one export..
+                Sets the import described by the specified definition with the specified exports.
             </summary>
+            <param name="definition">
+                One of the <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> objects from the 
+                <see cref="P:System.ComponentModel.Composition.Primitives.ComposablePart.ImportDefinitions"/> property describing the import to be set.
+            </param>
+            <param name="exports">
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects of which 
+                to set the import described by <paramref name="definition"/>.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="definition"/> is <see langword="null"/>.
+                <para>
+                    -or-
+                </para>
+                <paramref name="exports"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ArgumentException">
+                <paramref name="definition"/> did not originate from the <see cref="P:System.ComponentModel.Composition.Primitives.ComposablePart.ImportDefinitions"/>
+                property on the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>.
+                <para>
+                    -or-
+                </para>
+                <paramref name="exports"/> contains an element that is <see langword="null"/>.
+                <para>
+                    -or-
+                </para>
+                <paramref name="exports"/> is empty and <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.Cardinality"/> is 
+                <see cref="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ExactlyOne"/>.
+                <para>
+                    -or-
+                </para>
+                <paramref name="exports"/> contains more than one element and 
+                <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.Cardinality"/> is <see cref="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ZeroOrOne"/> or 
+                <see cref="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ExactlyOne"/>.
+            </exception>
+            <exception cref="T:System.InvalidOperationException">
+                <see cref="M:System.ComponentModel.Composition.Primitives.ComposablePart.OnComposed"/> has been previously called and 
+                <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.IsRecomposable"/> is <see langword="false"/>.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> has been disposed of.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException">
+                An error occurred setting the import described by the <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>.
+            </exception>
         </member>
-        <member name="P:System.Strings.NoLoaderFoundForTypeOfSpecifiedPackage">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePart.Dispose(System.Boolean)">
             <summary>
-              Looks up a localized string similar to No loader can be found for the type &apos;{0}&apos; of the specified package..
+                Releases the unmanaged resources used by the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> and 
+                optionally releases the managed resources.
             </summary>
+            <param name="disposing">
+                <see langword="true"/> to release both managed and unmanaged resources; 
+                <see langword="false"/> to release only unmanaged resources.
+            </param>
         </member>
-        <member name="P:System.Strings.NoSelectedConstructor">
+        <member name="P:System.ComponentModel.Composition.Primitives.ComposablePart.ExportDefinitions">
             <summary>
-              Looks up a localized string similar to There is not exactly one selected constructor nor is there a default constructor on type &apos;{0}&apos;. The type needs to either have a single constructor marked with the ImportingConstructorAttribute or it needs to contain a default constructor..
+                Gets the export definitions that describe the exported objects provided by the part.
             </summary>
+            <value>
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> objects describing
+                the exported objects provided by the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>.
+            </value>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> has been disposed of.
+            </exception>
+            <remarks>
+                <para>
+                    <note type="inheritinfo">
+                        If the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> was created from a 
+                        <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/>, this property should return the result of 
+                        <see cref="P:System.ComponentModel.Composition.Primitives.ComposablePartDefinition.ExportDefinitions"/>.
+                    </note>
+                 </para>
+                 <para>
+                    <note type="inheritinfo">
+                        Overriders of this property should never return <see langword="null"/>.
+                        If the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> does not have exports, return an empty 
+                        <see cref="T:System.Collections.Generic.IEnumerable`1"/> instead.
+                    </note>
+                </para>
+            </remarks>
         </member>
-        <member name="P:System.Strings.NotImplemented_NotOverriddenByDerived">
+        <member name="P:System.ComponentModel.Composition.Primitives.ComposablePart.ImportDefinitions">
             <summary>
-              Looks up a localized string similar to The {0} member must be overridden by a derived class..
+                Gets the import definitions that describe the imports required by the part.
             </summary>
+            <value>
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> objects describing
+                the imports required by the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>.
+            </value>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> has been disposed of.
+            </exception>
+            <remarks>
+                <para>
+                    <note type="inheritinfo">
+                        If the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> was created from a 
+                        <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/>, this property should return the result of 
+                        <see cref="P:System.ComponentModel.Composition.Primitives.ComposablePartDefinition.ImportDefinitions"/>.
+                    </note>
+                 </para>
+                 <para>
+                    <note type="inheritinfo">
+                        Overrides of this property should never return <see langword="null"/>.
+                        If the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> does not have imports, return an empty 
+                        <see cref="T:System.Collections.Generic.IEnumerable`1"/> instead.
+                    </note>
+                </para>
+            </remarks>
         </member>
-        <member name="P:System.Strings.NotSupportedReadOnlyDictionary">
+        <member name="P:System.ComponentModel.Composition.Primitives.ComposablePart.Metadata">
             <summary>
-              Looks up a localized string similar to The underlying dictionary is read-only..
+                Gets the metadata of the part.
             </summary>
+            <value>
+                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>. The default is an empty, read-only
+                <see cref="T:System.Collections.Generic.IDictionary`2"/>.
+            </value>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> has been disposed of.
+            </exception>
+            <remarks>
+                <para>
+                    <note type="inheritinfo">
+                        If the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> was created from a 
+                        <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/>, this property should return the result of 
+                        <see cref="P:System.ComponentModel.Composition.Primitives.ComposablePartDefinition.Metadata"/>.
+                    </note>
+                 </para>
+                 <para>
+                    <note type="inheritinfo">
+                        Overriders of this property should return a read-only
+                        <see cref="T:System.Collections.Generic.IDictionary`2"/> object with a case-sensitive, 
+                        non-linguistic comparer, such as <see cref="P:System.StringComparer.Ordinal"/>, 
+                        and should never return <see langword="null"/>. If the 
+                        <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> does not contain metadata, return an 
+                        empty <see cref="T:System.Collections.Generic.IDictionary`2"/> instead.
+                    </note>
+                 </para>
+            </remarks>
         </member>
-        <member name="P:System.Strings.ObjectAlreadyInitialized">
+        <member name="P:System.ComponentModel.Composition.Primitives.ComposablePart.RequiresDisposal">
             <summary>
-              Looks up a localized string similar to This property cannot be set after the object&apos;s public surface has been accessed..
+                Determines if this <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> requires its dispose method called. This
+                is to help prevent memory bloat by the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> because it
+                doesn't need to hold strong references to <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> that aren't disposable.
+            
+                The value of this property should be constant throughout the lifetime of the part because some
+                code such as the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> will use it to determine if it should
+                hold a reference to this part for disposal.
             </summary>
+            <returns>
+                <see langword="true"/> if this part should have its dispose called;
+                otherwise <see langword="false"/> which is the default.
+            </returns>
         </member>
-        <member name="P:System.Strings.ObjectMustBeInitialized">
+        <member name="T:System.ComponentModel.Composition.Primitives.ICompositionElement">
             <summary>
-              Looks up a localized string similar to This object has not been initialized - the property &apos;{0}&apos; must be set..
+                Represents an element that participates in composition.
             </summary>
         </member>
-        <member name="P:System.Strings.OperationBindSingletonOnMultiplexer">
+        <member name="P:System.ComponentModel.Composition.Primitives.ICompositionElement.DisplayName">
             <summary>
-              Looks up a localized string similar to SelectOperation cannot be called as a singleton when the operation is a multiplexer..
+                Gets the display name of the composition element.
             </summary>
+            <value>
+                A <see cref="T:System.String"/> containing a human-readable display name of the <see cref="T:System.ComponentModel.Composition.Primitives.ICompositionElement"/>.
+            </value>
+            <remarks>
+                <note type="implementnotes">
+                    Implementors of this property should never return <see langword="null"/> or an empty 
+                    string ("").
+                </note>
+            </remarks>
         </member>
-        <member name="P:System.Strings.OperationCreateOverloadFailed">
+        <member name="P:System.ComponentModel.Composition.Primitives.ICompositionElement.Origin">
             <summary>
-              Looks up a localized string similar to Unable to create an overloaded operation.  The following values in the sequence are not valid operations:.
+                Gets the composition element from which the current composition element
+                originated.
             </summary>
+            <value>
+                A <see cref="T:System.ComponentModel.Composition.Primitives.ICompositionElement"/> from which the current 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ICompositionElement"/> originated, or <see langword="null"/> 
+                if the <see cref="T:System.ComponentModel.Composition.Primitives.ICompositionElement"/> is the root composition element.
+            </value>
         </member>
-        <member name="P:System.Strings.OperationInvalidOverloadValue">
+        <member name="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition">
             <summary>
-              Looks up a localized string similar to One of the values in the sequence is not a valid operation.  A valid operation must be of type Delegate, MethodInfo, or ConstructorInfo..
+                Defines the <see langword="abstract"/> base class for composable part definitions, which 
+                describe, and allow the creation of, <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> objects.
             </summary>
         </member>
-        <member name="P:System.Strings.OperationMethodIsAbstract">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePartDefinition.#ctor">
             <summary>
-              Looks up a localized string similar to The method &apos;{0}&apos; from type &apos;{1}&apos; can not be invoked as an operation because it is abstract..
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> class.
             </summary>
         </member>
-        <member name="P:System.Strings.OperationOverloadFailedNoMatch">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePartDefinition.CreatePart">
             <summary>
-              Looks up a localized string similar to Unable to execute operation given the set of arguments.  There is no matching overload that takes those arguments..
+                Creates a new instance of a part that the definition describes.
             </summary>
+            <returns>
+                The created <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>.
+            </returns>
+            <remarks>
+                <para>
+                    <note type="inheritinfo">
+                        Derived types overriding this method should return a new instance of a 
+                        <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> on every invoke and should never return 
+                        <see langword="null"/>.
+                    </note>
+                </para>
+            </remarks>
         </member>
-        <member name="P:System.Strings.OperationServicesInvalidTypeArgument">
+        <member name="P:System.ComponentModel.Composition.Primitives.ComposablePartDefinition.ExportDefinitions">
             <summary>
-              Looks up a localized string similar to Expecting type argument. Element &apos;{0}[{1}]&apos; is not of type &apos;{2}&apos;..
+                Gets the export definitions that describe the exported objects provided by parts 
+                created by the definition.
             </summary>
+            <value>
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> objects describing
+                the exported objects provided by <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> objects created by the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/>.
+            </value>
+            <remarks>
+                <note type="inheritinfo">
+                    Overrides of this property should never return <see langword="null"/>.
+                    If the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> objects created by the 
+                    <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> do not provide exported objects, return 
+                    an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/> instead.
+                </note>
+            </remarks>
         </member>
-        <member name="P:System.Strings.OperationSignatureMismatch">
+        <member name="P:System.ComponentModel.Composition.Primitives.ComposablePartDefinition.ImportDefinitions">
             <summary>
-              Looks up a localized string similar to An operation was called with the wrong number or type of arguments.  The expected signature was {3} parameters of type &apos;{1}&apos; and the actual signature was {2} parameters of type &apos;{0}&apos;..
+                Gets the import definitions that describe the imports required by parts created 
+                by the definition.
             </summary>
+            <value>
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> objects describing
+                the imports required by <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> objects created by the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/>.
+            </value>
+            <remarks>
+                <note type="inheritinfo">
+                    Overriders of this property should never return <see langword="null"/>.
+                    If the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> objects created by the 
+                    <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> do not have imports, return an empty 
+                    <see cref="T:System.Collections.Generic.IEnumerable`1"/> instead.
+                </note>
+            </remarks>
         </member>
-        <member name="P:System.Strings.PackageIsNotAssembly">
+        <member name="P:System.ComponentModel.Composition.Primitives.ComposablePartDefinition.Metadata">
             <summary>
-              Looks up a localized string similar to Provided package is not a CLR assembly.
+                Gets the metadata of the definition.
             </summary>
+            <value>
+                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/>. The default is an empty, read-only
+                <see cref="T:System.Collections.Generic.IDictionary`2"/>.
+            </value>
+            <remarks>
+                <para>
+                    <note type="inheritinfo">
+                        Overriders of this property should return a read-only
+                        <see cref="T:System.Collections.Generic.IDictionary`2"/> object with a case-sensitive, 
+                        non-linguistic comparer, such as <see cref="P:System.StringComparer.Ordinal"/>, 
+                        and should never return <see langword="null"/>. If the 
+                        <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> does contain metadata, 
+                        return an empty <see cref="T:System.Collections.Generic.IDictionary`2"/> instead.
+                    </note>
+                </para>
+            </remarks>
         </member>
-        <member name="P:System.Strings.PackageNotFound">
+        <member name="T:System.ComponentModel.Composition.Primitives.ExportDefinition">
             <summary>
-              Looks up a localized string similar to The specified package ({0}) could not be found in this catalog..
+                Describes the contract that an <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> object satisfies.
             </summary>
         </member>
-        <member name="P:System.Strings.PartActivatorNotFound">
+        <member name="M:System.ComponentModel.Composition.Primitives.ExportDefinition.#ctor">
             <summary>
-              Looks up a localized string similar to No activator for the type of the specified part ({0}) could be found..
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> class.
             </summary>
+            <remarks>
+                <note type="inheritinfo">
+                    Derived types calling this constructor must override <see cref="P:System.ComponentModel.Composition.Primitives.ExportDefinition.ContractName"/>
+                    and optionally, <see cref="P:System.ComponentModel.Composition.Primitives.ExportDefinition.Metadata"/>. By default, <see cref="P:System.ComponentModel.Composition.Primitives.ExportDefinition.Metadata"/>
+                    returns an empty, read-only dictionary.
+                </note>
+            </remarks>
         </member>
-        <member name="P:System.Strings.PartNotFound">
+        <member name="M:System.ComponentModel.Composition.Primitives.ExportDefinition.#ctor(System.String,System.Collections.Generic.IDictionary{System.String,System.Object})">
             <summary>
-              Looks up a localized string similar to Part not found.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> class with 
+                the specified contract name and metadata.
             </summary>
+            <param name="contractName">
+                A <see cref="T:System.String"/> containing the contract name of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/>.
+            </param>
+            <param name="metadata">
+                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/>; or <see langword="null"/> to set the 
+                <see cref="P:System.ComponentModel.Composition.Primitives.ExportDefinition.Metadata"/> property to an empty, read-only 
+                <see cref="T:System.Collections.Generic.IDictionary`2"/>.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="contractName"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ArgumentException">
+                <paramref name="contractName"/> is an empty string ("").
+            </exception>
         </member>
-        <member name="P:System.Strings.ProjectionContextAmbiguousInterfaceMatch">
+        <member name="M:System.ComponentModel.Composition.Primitives.ExportDefinition.ToString">
             <summary>
-              Looks up a localized string similar to ProjectionContext found multiple adapters for type &apos;{0}&apos; because it implements interface &apos;{1}&apos; as well as interface &apos;{2}&apos;.
+                Returns a string representation of the export definition.
             </summary>
+            <returns>
+                A <see cref="T:System.String"/> containing the value of the <see cref="P:System.ComponentModel.Composition.Primitives.ExportDefinition.ContractName"/> property.
+            </returns>
         </member>
-        <member name="P:System.Strings.ProjectionContextFrozen">
+        <member name="P:System.ComponentModel.Composition.Primitives.ExportDefinition.ContractName">
             <summary>
-              Looks up a localized string similar to Unable to register adapter for type &apos;{0}&apos; because the mapping context has been frozen.
+                Gets the contract name of the export definition.
             </summary>
+            <value>
+                A <see cref="T:System.String"/> containing the contract name of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/>.
+            </value>
+            <exception cref="T:System.NotImplementedException">
+                The property was not overridden by a derived class.
+            </exception>
+            <remarks>
+                <note type="inheritinfo">
+                    Overriders of this property should never return <see langword="null"/> 
+                    or an empty string ("").
+                </note>
+            </remarks>
         </member>
-        <member name="P:System.Strings.ProjectToStructureWrongKind">
+        <member name="P:System.ComponentModel.Composition.Primitives.ExportDefinition.Metadata">
             <summary>
-              Looks up a localized string similar to Unable to project value of type &apos;{0}&apos; to &apos;{1}&apos;..
+                Gets the metadata of the export definition.
             </summary>
+            <value>
+                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/>. The default is an empty, read-only
+                <see cref="T:System.Collections.Generic.IDictionary`2"/>.
+            </value>
+            <remarks>
+                <para>
+                    <note type="inheritinfo">
+                        Overriders of this property should return a read-only
+                        <see cref="T:System.Collections.Generic.IDictionary`2"/> object with a case-sensitive, 
+                        non-linguistic comparer, such as <see cref="P:System.StringComparer.Ordinal"/>, 
+                        and should never return <see langword="null"/>.
+                        If the <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> does not contain metadata 
+                        return an empty <see cref="T:System.Collections.Generic.IDictionary`2"/> instead.
+                    </note>
+                </para>
+            </remarks>
         </member>
-        <member name="P:System.Strings.RecordDoesNotContainFieldName">
+        <member name="T:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition">
             <summary>
-              Looks up a localized string similar to The record does not contain a field named ({0}).
+                Represents a contract name and metadata-based import 
+                required by a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> object.
             </summary>
         </member>
-        <member name="P:System.Strings.RecordDuplicateMemberName">
+        <member name="T:System.ComponentModel.Composition.Primitives.ImportDefinition">
             <summary>
-              Looks up a localized string similar to The member ({0}) already exists in the record..
+                Represents an import required by a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> object.
             </summary>
         </member>
-        <member name="P:System.Strings.RecordIsNotExtensible">
+        <member name="M:System.ComponentModel.Composition.Primitives.ImportDefinition.#ctor">
             <summary>
-              Looks up a localized string similar to Cannot add, insert or remove the member named &apos;{0}&apos; to the record because the record is not extensible.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> class.
             </summary>
+            <remarks>
+                <note type="inheritinfo">
+                    Derived types calling this constructor must override the <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.Constraint"/> 
+                    property, and optionally, the <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.Cardinality"/>, <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.IsPrerequisite"/> 
+                    and <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.IsRecomposable"/> 
+                    properties.
+                </note>
+            </remarks>
         </member>
-        <member name="P:System.Strings.RecordMemberIdentifierEmpty">
+        <member name="M:System.ComponentModel.Composition.Primitives.ImportDefinition.#ctor(System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.Primitives.ExportDefinition,System.Boolean}},System.ComponentModel.Composition.Primitives.ImportCardinality,System.Boolean,System.Boolean)">
             <summary>
-              Looks up a localized string similar to Unable to create a RecordMemberIdentifier from an empty string..
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> class 
+                with the specified constraint, cardinality, value indicating if the import 
+                definition is recomposable and a value indicating if the import definition 
+                is a prerequisite.
             </summary>
+            <param name="constraint">
+                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
+                that defines the conditions that must be matched for the <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> 
+                to be satisfied by an <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>.
+            </param>
+            <param name="cardinality">
+                One of the <see cref="T:System.ComponentModel.Composition.Primitives.ImportCardinality"/> values indicating the 
+                cardinality of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects required by the
+                <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>.
+            </param>
+            <param name="isRecomposable">
+                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> can be satisfied 
+                multiple times throughout the lifetime of a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>, otherwise, 
+                <see langword="false"/>.
+            </param>
+            <param name="isPrerequisite">
+                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> is required to be 
+                satisfied before a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> can start producing exported 
+                objects; otherwise, <see langword="false"/>.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="constraint"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ArgumentException">
+                <paramref name="cardinality"/> is not one of the <see cref="T:System.ComponentModel.Composition.Primitives.ImportCardinality"/> 
+                values.
+            </exception>
         </member>
-        <member name="P:System.Strings.RecordMemberIdentifierMemberNamePeriod">
+        <member name="M:System.ComponentModel.Composition.Primitives.ImportDefinition.ToString">
             <summary>
-              Looks up a localized string similar to The memberName &apos;{1}&apos; is invalid because it contains a &apos;.&apos; character..
+                Returns a string representation of the import definition.
             </summary>
+            <returns>
+                A <see cref="T:System.String"/> containing the value of the <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.Constraint"/> property.
+            </returns>
         </member>
-        <member name="P:System.Strings.RecordMemberIdentifierNoType">
+        <member name="P:System.ComponentModel.Composition.Primitives.ImportDefinition.Cardinality">
             <summary>
-              Looks up a localized string similar to Unable to create a RecordMemberIdentifier from the string &apos;{0}&apos; because no type was specified.  A valid format is {{namespace}}Type.Name..
+                Gets the cardinality of the exports required by the import definition.
             </summary>
+            <value>
+                One of the <see cref="T:System.ComponentModel.Composition.Primitives.ImportCardinality"/> values indicating the 
+                cardinality of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects required by the
+                <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>. The default is 
+                <see cref="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ExactlyOne"/>
+            </value>
         </member>
-        <member name="P:System.Strings.RecordMemberIdentifierTypeNamePeriod">
+        <member name="P:System.ComponentModel.Composition.Primitives.ImportDefinition.Constraint">
             <summary>
-              Looks up a localized string similar to The typeName &apos;{0}&apos; is invalid because the LocalName contains a &apos;.&apos; character..
+                Gets an expression that defines conditions that must be matched for the import 
+                described by the import definition to be satisfied.
             </summary>
+            <returns>
+                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
+                that defines the conditions that must be matched for the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> to be satisfied by an <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>.
+            </returns>
+            <exception cref="T:System.NotImplementedException">
+                The property was not overridden by a derived class.
+            </exception>
+            <remarks>
+                <note type="inheritinfo">
+                    Overriders of this property should never return <see langword="null"/>.
+                </note>
+            </remarks>
         </member>
-        <member name="P:System.Strings.RecordMemberNotExpectedType">
+        <member name="P:System.ComponentModel.Composition.Primitives.ImportDefinition.IsPrerequisite">
             <summary>
-              Looks up a localized string similar to The RecordMember &apos;{0}&apos; is not of the expected type &apos;{1}&apos;.
+                Gets a value indicating whether the import definition is required to be 
+                satisfied before a part can start producing exported objects.
             </summary>
+            <value>
+                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> is required to be 
+                satisfied before a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> can start producing exported 
+                objects; otherwise, <see langword="false"/>. The default is <see langword="true"/>.
+            </value>
         </member>
-        <member name="P:System.Strings.RecordValueIsNotAnOperation">
+        <member name="P:System.ComponentModel.Composition.Primitives.ImportDefinition.IsRecomposable">
             <summary>
-              Looks up a localized string similar to The value of type &apos;{0}&apos; is not a well-formed Operation.  Valid types are any delegate, MethodInfo, or LambdaExpression..
+                Gets a value indicating whether the import definition can be satisfied multiple times.
             </summary>
+            <value>
+                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> can be satisfied 
+                multiple times throughout the lifetime of a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>, otherwise, 
+                <see langword="false"/>. The default is <see langword="false"/>.
+            </value>
         </member>
-        <member name="P:System.Strings.RecordValueIsReadOnly">
+        <member name="M:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.#ctor">
             <summary>
-              Looks up a localized string similar to Record value is read-only.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition"/> class.
             </summary>
+            <remarks>
+                <note type="inheritinfo">
+                    Derived types calling this constructor must override the <see cref="P:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.ContractName"/> 
+                    property, and optionally, the <see cref="P:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.RequiredMetadata"/>, 
+                    <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.Cardinality"/>, <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.IsPrerequisite"/>,
+                    <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.IsRecomposable"/> and <see cref="P:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.RequiredCreationPolicy"/> properties.
+                </note>
+            </remarks>
         </member>
-        <member name="P:System.Strings.RequiredMetadataNotFound">
+        <member name="M:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.#ctor(System.String,System.ComponentModel.Composition.Primitives.ImportCardinality,System.Boolean,System.Boolean)">
             <summary>
-              Looks up a localized string similar to An export was found meeting the contract &apos;{0}&apos;, but it was ignored because the required metadata &apos;{1}&apos; was not found. The required metadata of an import could be specified by using ImportRequiredMetadataAttribute attribute or strongly typed metadata..
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition"/> class 
+                with the specified contract name, cardinality, value indicating if the import 
+                definition is recomposable and a value indicating if the import definition 
+                is a prerequisite.
             </summary>
+            <param name="contractName">
+                A <see cref="T:System.String"/> containing the contract name of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> required by the <see cref="T:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition"/>.
+            </param>
+            <param name="cardinality">
+                One of the <see cref="T:System.ComponentModel.Composition.Primitives.ImportCardinality"/> values indicating the 
+                cardinality of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects required by the
+                <see cref="T:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition"/>.
+            </param>
+            <param name="isRecomposable">
+                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition"/> can be satisfied 
+                multiple times throughout the lifetime of a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>, otherwise, 
+                <see langword="false"/>.
+            </param>
+            <param name="isPrerequisite">
+                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition"/> is required to be 
+                satisfied before a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> can start producing exported 
+                objects; otherwise, <see langword="false"/>.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="contractName"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ArgumentException">
+                <paramref name="contractName"/> is an empty string ("").
+                <para>
+                    -or-
+                </para>
+                <paramref name="cardinality"/> is not one of the <see cref="T:System.ComponentModel.Composition.Primitives.ImportCardinality"/> 
+                values.
+            </exception>
         </member>
-        <member name="P:System.Strings.SequenceCopyToIndex">
+        <member name="M:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.#ctor(System.String,System.Collections.Generic.IEnumerable{System.String},System.ComponentModel.Composition.Primitives.ImportCardinality,System.Boolean,System.Boolean,System.ComponentModel.Composition.CreationPolicy)">
             <summary>
-              Looks up a localized string similar to CopyTo is unable to copy {0} items to an array of length {1} starting at index {2}..
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition"/> class 
+                with the specified contract name, required metadataq, cardinality, value indicating 
+                if the import definition is recomposable and a value indicating if the import definition 
+                is a prerequisite.
             </summary>
+            <param name="contractName">
+                A <see cref="T:System.String"/> containing the contract name of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> required by the <see cref="T:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition"/>.
+            </param>
+            <param name="requiredMetadata">
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.String"/> objects containing
+                the metadata names of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> required by the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition"/>; or <see langword="null"/> to
+                set the <see cref="P:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.RequiredMetadata"/> property to an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
+            </param>
+            <param name="cardinality">
+                One of the <see cref="T:System.ComponentModel.Composition.Primitives.ImportCardinality"/> values indicating the 
+                cardinality of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects required by the
+                <see cref="T:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition"/>.
+            </param>
+            <param name="isRecomposable">
+                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition"/> can be satisfied 
+                multiple times throughout the lifetime of a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>, otherwise, 
+                <see langword="false"/>.
+            </param>
+            <param name="isPrerequisite">
+                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition"/> is required to be 
+                satisfied before a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> can start producing exported 
+                objects; otherwise, <see langword="false"/>.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="contractName"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ArgumentException">
+                <paramref name="contractName"/> is an empty string ("").
+                <para>
+                    -or-
+                </para>
+                <paramref name="requiredMetadata"/> contains an element that is <see langword="null"/>.
+                <para>
+                    -or-
+                </para>
+                <paramref name="cardinality"/> is not one of the <see cref="T:System.ComponentModel.Composition.Primitives.ImportCardinality"/> 
+                values.
+            </exception>
         </member>
-        <member name="P:System.Strings.SequenceNotRefillable">
+        <member name="P:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.ContractName">
             <summary>
-              Looks up a localized string similar to Operation &apos;{0}&apos; can not be performed on a value of type &apos;{1}&apos; as a collection.  A type is considered a collection because it implements GetEnumerator and Add methods.  However, this one does not also implement the Clear or Remove method..
+                Gets the contract name of the export required by the import definition.
             </summary>
+            <value>
+                A <see cref="T:System.String"/> containing the contract name of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> required by the <see cref="T:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition"/>.
+            </value>
+            <exception cref="T:System.NotImplementedException">
+                The property was not overridden by a derived class.
+            </exception>
+            <remarks>
+                <note type="inheritinfo">
+                    Overriders of this property should never return <see langword="null"/>
+                    or an empty string ("").
+                </note>
+            </remarks>
         </member>
-        <member name="P:System.Strings.SequenceReadOnly">
+        <member name="P:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.RequiredMetadata">
             <summary>
-              Looks up a localized string similar to The sequence can not be modified because it is read-only..
+                Gets the metadata names of the export required by the import definition.
             </summary>
+            <value>
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.String"/> objects containing
+                the metadata names of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> required by the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition"/>. The default is an empty 
+                <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
+            </value>
+            <remarks>
+                <note type="inheritinfo">
+                    Overriders of this property should never return <see langword="null"/>
+                    or return an <see cref="T:System.Collections.Generic.IEnumerable`1"/> that contains an element that is
+                    <see langword="null"/>. If the definition does not contain required metadata, 
+                    return an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/> instead.
+                </note>
+            </remarks>
         </member>
-        <member name="P:System.Strings.SetMethodsNotSupported">
+        <member name="P:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.RequiredCreationPolicy">
             <summary>
-              Looks up a localized string similar to Set Methods not supported &apos;{0}&apos;..
+                Gets or sets a value indicating that the importer requires a specific 
+                <see cref="T:System.ComponentModel.Composition.CreationPolicy"/> for the exports used to satisfy this import. T
             </summary>
+            <value>
+                <see cref="F:System.ComponentModel.Composition.CreationPolicy.Any"/> - default value, used if the importer doesn't 
+                    require a specific <see cref="T:System.ComponentModel.Composition.CreationPolicy"/>.
+            
+                <see cref="F:System.ComponentModel.Composition.CreationPolicy.Shared"/> - Requires that all exports used should be shared
+                    by everyone in the container.
+            
+                <see cref="F:System.ComponentModel.Composition.CreationPolicy.NonShared"/> - Requires that all exports used should be 
+                    non-shared in a container and thus everyone gets their own instance.
+            </value>
         </member>
-        <member name="P:System.Strings.StronglyTypedMetadataNotSupportedOnSilverlight">
+        <member name="P:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.Constraint">
             <summary>
-              Looks up a localized string similar to Strongly typed metadata is not supported on Silverlight..
+                Gets an expression that defines conditions that must be matched for the import 
+                described by the import definition to be satisfied.
             </summary>
+            <returns>
+                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
+                that defines the conditions that must be matched for the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> to be satisfied by an <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>.
+            </returns>
+            <remarks>
+                <para>
+                    This property returns an expression that defines conditions based on the 
+                    <see cref="P:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.ContractName"/> and <see cref="P:System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.RequiredMetadata"/> properties.
+                </para>
+            </remarks>
         </member>
-        <member name="P:System.Strings.TooManyExportsThatMatchConstraint">
+        <member name="T:System.ComponentModel.Composition.Caching.AttributedModel.AttributedComposablePartCatalogSite">
             <summary>
-              Looks up a localized string similar to Multiple exports were found that match the constraint &apos;{0}&apos;. The import for this contract requires a single export only..
+            This cached catalog site is used by all catalogs that containe AttributedComposablePartDefinitions
             </summary>
         </member>
-        <member name="P:System.Strings.TypeConverterReturnedWrongType">
+        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCache.GetCacheCatalog(System.ComponentModel.Composition.Caching.ICachedComposablePartCatalogSite)">
             <summary>
-              Looks up a localized string similar to A TypeConverter returned a value of type &apos;{0}&apos; when it was supposed to return a value of type &apos;{1}&apos;.  The input value was of type &apos;{2}&apos;..
+            Returns the catalog that represents the cache. Note, that this is not the originally cached catalog, bur rather a representation
+            of the cached part definitions.
             </summary>
+            <param name="catalogSite"></param>
+            <returns></returns>
         </member>
-        <member name="P:System.Strings.TypeMismatchBetweenImportAndExport">
+        <member name="P:System.ComponentModel.Composition.Caching.ComposablePartCatalogCache.Metadata">
             <summary>
-              Looks up a localized string similar to Type mismatch on contract &apos;{0}&apos; between an export of type &apos;{1}&apos; and import of type &apos;{2}&apos;..
+            Catalog metadata
             </summary>
         </member>
-        <member name="P:System.Strings.UnsupportedCachedValue">
+        <member name="P:System.ComponentModel.Composition.Caching.ComposablePartCatalogCache.Reader">
             <summary>
-              Looks up a localized string similar to Objects of type &apos;{0}&apos; cannot be written into the cache..
+            The reader that has provided the cache
             </summary>
         </member>
-        <member name="P:System.Strings.UriMustBeAssemblyName">
+        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheReader.ReadCacheCore(System.Object)">
             <summary>
-              Looks up a localized string similar to Uri must be of the assembly name scheme..
+            Reads the catalog cache given the cache token.
             </summary>
+            <param name="cacheToken">The cache token.</param>
+            <returns>The catalog cache corresponding to the specified cache token.</returns>
         </member>
-        <member name="T:System.ComponentModel.Composition.ExportProvider">
+        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheReader.ReadCatalog(System.Object)">
             <summary>
-                Defines the <see langword="abstract"/> base class for export providers, which provide
-                methods for retrieving <see cref="T:System.ComponentModel.Composition.Export"/> objects.
+            Reads the catalog from the cache given the specified cache token. This methos trows if thew catalog with the given
+            token doesn't exist.
             </summary>
+            <param name="cacheToken">The cache token.</param>
+            <returns>The catalog corresponding to the specified cache token.</returns>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.#ctor">
+        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheReader.ReadRootCatalog">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportProvider"/> class.
+            Reads the root catalog from the cache
             </summary>
+            <returns>The root catalog.</returns>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.OnExportsChanged(System.ComponentModel.Composition.ExportsChangedEventArgs)">
+        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheReader.Dispose">
             <summary>
-                Raises the <see cref="E:System.ComponentModel.Composition.ExportProvider.ExportsChanged"/> event.
+            Releases all the resources allocated by the <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheReader"/> and completes the cache writing.
             </summary>
-            <param name="e">
-                An <see cref="T:System.ComponentModel.Composition.ExportsChangedEventArgs"/> containing the data for the event.
-            </param>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExportsCore(System.ComponentModel.Composition.ImportDefinition)">
+        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheReader.Dispose(System.Boolean)">
             <summary>
-                Returns all exports that match the conditions of the specified import.
+            Releases all the resources allocated by the <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter"/> and completes the cache writing.
             </summary>
-            <param name="importDefinition">
-                The <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> that defines the conditions of the 
-                <see cref="T:System.ComponentModel.Composition.Export"/> objects to get.
-            </param>
-            <result>
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/> objects that match 
-                the conditions defined by <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>, if found; otherwise, an 
-                empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            </result>
-            <remarks>
-                <note type="inheritinfo">
-                    Overriders of this method should not treat cardinality-related mismatches 
-                    as errors, and should not throw exceptions in those cases. For instance,
-                    if <see cref="P:System.ComponentModel.Composition.ImportDefinition.Cardinality"/> is <see cref="F:System.ComponentModel.Composition.ImportCardinality.ExactlyOne"/> 
-                    and there are zero <see cref="T:System.ComponentModel.Composition.Export"/> objects that match the conditions of the 
-                    specified <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>, an <see cref="T:System.Collections.Generic.IEnumerable`1"/> should be returned.
-                </note>
-            </remarks>
+            <param name="disposing">Is called from Dispose() if set to <c>true</c>, otherwise is called from the finalizer.</param>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExports(System.ComponentModel.Composition.ImportDefinition)">
+        <member name="P:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheReader.RootCacheToken">
             <summary>
-                Returns all exports that match the conditions of the specified import.
+            Returns the cache token corresponding to the root catalog in the cache.
             </summary>
-            <param name="importDefinition">
-                The <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> that defines the conditions of the 
-                <see cref="T:System.ComponentModel.Composition.Export"/> objects to get.
-            </param>
-            <result>
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/> objects that match 
-                the conditions defined by <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>, if found; otherwise, an 
-                empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            </result>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="importDefinition"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
-                <para>
-                    <see cref="P:System.ComponentModel.Composition.ImportDefinition.Cardinality"/> is <see cref="F:System.ComponentModel.Composition.ImportCardinality.ExactlyOne"/> and 
-                    there are zero <see cref="T:System.ComponentModel.Composition.Export"/> objects that match the conditions of the specified 
-                    <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>.
-                </para>
-                -or-
-                <para>
-                    <see cref="P:System.ComponentModel.Composition.ImportDefinition.Cardinality"/> is <see cref="F:System.ComponentModel.Composition.ImportCardinality.ZeroOrOne"/> or 
-                    <see cref="F:System.ComponentModel.Composition.ImportCardinality.ExactlyOne"/> and there are more than one <see cref="T:System.ComponentModel.Composition.Export"/> 
-                    objects that match the conditions of the specified <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>.
-                </para>
-            </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.TryGetExports(System.ComponentModel.Composition.ImportDefinition,System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Export}@)">
+        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter.WriteCache(System.Type,System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Primitives.ComposablePartDefinition},System.Collections.Generic.IDictionary{System.String,System.Object},System.ComponentModel.Composition.Caching.ICachedComposablePartCatalogSite)">
             <summary>
-                Returns all exports that match the conditions of the specified import.
+            Writes part definitions and catalog metadata into the cache.
             </summary>
-            <param name="importDefinition">
-                The <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> that defines the conditions of the 
-                <see cref="T:System.ComponentModel.Composition.Export"/> objects to get.
-            </param>
-            <param name="exports">
-                When this method returns, contains an <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/> 
-                objects that match the conditions defined by <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>, if found; 
-                otherwise, an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            </param>
-            <returns>
-                <see langword="true"/> if <see cref="P:System.ComponentModel.Composition.ImportDefinition.Cardinality"/> is 
-                <see cref="F:System.ComponentModel.Composition.ImportCardinality.ZeroOrOne"/> or <see cref="F:System.ComponentModel.Composition.ImportCardinality.ZeroOrMore"/> and 
-                there are zero <see cref="T:System.ComponentModel.Composition.Export"/> objects that match the conditions of the specified 
-                <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>. <see langword="true"/> if 
-                <see cref="P:System.ComponentModel.Composition.ImportDefinition.Cardinality"/> is <see cref="F:System.ComponentModel.Composition.ImportCardinality.ZeroOrOne"/> or 
-                <see cref="F:System.ComponentModel.Composition.ImportCardinality.ExactlyOne"/> and there is exactly one <see cref="T:System.ComponentModel.Composition.Export"/> 
-                that matches the conditions of the specified <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>; otherwise, 
-                <see langword="false"/>.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="importDefinition"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExport``1">
-            <summary>
-                Returns the export with the contract name derived from the specified type parameter, 
-                throwing an exception if there is not exactly one matching export.
+            <param name="catalogType">Catalog type.</param>
+            <param name="partDefinitions">Parts definitions.</param>
+            <param name="catalogMetadata">Catalog Metadata.</param>
+            <param name="catalogSite">Catalog Site</param>
+            <returns>Catalog cache token. This value can be cached and used to locate this cache wen reading from the cache.</returns>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter.WriteCacheCore(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Primitives.ComposablePartDefinition},System.Collections.Generic.IDictionary{System.String,System.Object},System.ComponentModel.Composition.Caching.ICachedComposablePartCatalogSite)">
+            <summary>
+            Writes part definitions and catalog metadata into the cache.
+            </summary>
+            <param name="partDefinitions">Parts definitions.</param>
+            <param name="catalogMetadata">Catalog Metadata.</param>
+            <param name="catalogSite">Catalog Site</param>
+            <returns>Catalog cache token. This value can be cached and used to locate this cache wen reading from the cache.</returns>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter.WriteRootCacheToken(System.Object)">
+            <summary>
+            Sets "root" catalog of the cache - that is one that the corresponding <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCache"/> will open first when the 
+            appropriate storage is read. This method may be called multiple times; the last set value is expected to be written to the cache when the
+            <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter"/> is disposed.
+            </summary>
+            <param name="catalogToken">Value returned by a call to WriteCache.</param>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter.Dispose">
+            <summary>
+            Releases all the resources allocated by the <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter"/> and completes the cache writing.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter.Dispose(System.Boolean)">
+            <summary>
+            Releases all the resources allocated by the <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter"/> and completes the cache writing.
+            </summary>
+            <param name="disposing">Is called from Dispose() if set to <c>true</c>, otherwise is called from the finalizer.</param>
+        </member>
+        <member name="T:System.ComponentModel.Composition.Caching.EmptyCachedComposablePartCatalogSite">
+            <summary>
+            This is used by catalogs that don't actually have any parts, but only metadata.
+            We use this type when "null" is passed for the site.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Caching.ICachedComposablePartCatalog.CacheCatalog(System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter)">
+            <summary>
+            Caches the contents of the catalog using the specified  <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter"/>.
+            </summary>
+            <param name="writer">The cache writer.</param>
+            <returns>The cache token corresponding to the written catalog cache.</returns>
+        </member>
+        <member name="P:System.ComponentModel.Composition.Caching.ICachedComposablePartCatalog.IsCacheUpToDate">
+            <summary>
+            Specifies whether the cache the state of the catalog has changed since the last time it was read from the cache.
+            </summary>
+        </member>
+        <member name="T:System.ComponentModel.Composition.CardinalityMismatchException">
+            <summary>
+                The exception that is thrown when the cardinality of a <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>
+                does not match the cardinality of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects available in an 
+                <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/>.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.CardinalityMismatchException.#ctor">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/> class.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.CardinalityMismatchException.#ctor(System.String)">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/> class 
+                with the specified error message.
+            </summary>
+            <param name="message">
+                A <see cref="T:System.String"/> containing a message that describes the 
+                <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.Exception.Message"/> property to its default value.
+            </param>
+        </member>
+        <member name="M:System.ComponentModel.Composition.CardinalityMismatchException.#ctor(System.String,System.Exception)">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/> class 
+                with the specified error message and exception that is the cause of the  
+                exception.
+            </summary>
+            <param name="message">
+                A <see cref="T:System.String"/> containing a message that describes the 
+                <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.Exception.Message"/> property to its default value.
+            </param>
+            <param name="innerException">
+                The <see cref="T:System.Exception"/> that is the underlying cause of the 
+                <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.Exception.InnerException"/> property to <see langword="null"/>.
+            </param>
+        </member>
+        <member name="M:System.ComponentModel.Composition.CardinalityMismatchException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/> class 
+                with the specified serialization data.
+            </summary>
+            <param name="info">
+                The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the 
+                <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/>.
+            </param>
+            <param name="context">
+                The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the 
+                source or destination.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="info"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.Runtime.Serialization.SerializationException">
+                <paramref name="info"/> is missing a required value.
+            </exception>
+            <exception cref="T:System.InvalidCastException">
+                <paramref name="info"/> contains a value that cannot be cast to the correct type.
+            </exception>
+        </member>
+        <member name="T:System.ComponentModel.Composition.CatalogDiscoveryMode">
+            <summary>
+                Specifies when an attributed part is discovered by a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/>.
+            </summary>
+        </member>
+        <member name="F:System.ComponentModel.Composition.CatalogDiscoveryMode.Auto">
+            <summary>
+                Indicates that an attributed part will be discovered by a 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/> if a member declared at the level of the type's 
+                hierarchy, or if the type itself, is marked with the <see cref="T:System.ComponentModel.Composition.ImportAttribute"/>,
+                <see cref="T:System.ComponentModel.Composition.ImportingConstructorAttribute"/>, or <see cref="T:System.ComponentModel.Composition.ExportAttribute"/> 
+                attributes. Inherited members are not considered.
+            </summary>
+        </member>
+        <member name="F:System.ComponentModel.Composition.CatalogDiscoveryMode.Never">
+            <summary>
+                Indicates that an attributed part will never be discovered by a 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/>.
+            </summary>
+        </member>
+        <member name="F:System.ComponentModel.Composition.CatalogDiscoveryMode.Always">
+            <summary>
+                Indicates that an attributed part will be discovered by a 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/> if a member declared anywhere in the type's
+                hierarchy, or if the type itself, is marked with the <see cref="T:System.ComponentModel.Composition.ImportAttribute"/>,
+                <see cref="T:System.ComponentModel.Composition.ImportingConstructorAttribute"/>, or <see cref="T:System.ComponentModel.Composition.ExportAttribute"/> 
+                attributes.
+            </summary>
+        </member>
+        <member name="T:System.ComponentModel.Composition.ContractMismatchException">
+            <summary>
+                The exception that is thrown when the underlying exported object or metadata of an 
+                <see cref="T:System.ComponentModel.Composition.Export`1"/> or <see cref="T:System.ComponentModel.Composition.Export`2"/> object cannot be 
+                cast to <c>T</c> or <c>TMetadataView</c>, respectively.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.ContractMismatchException.#ctor">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/> class.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.ContractMismatchException.#ctor(System.String)">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/> class 
+                with the specified error message.
+            </summary>
+            <param name="message">
+                A <see cref="T:System.String"/> containing a message that describes the 
+                <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.Exception.Message"/> property to its default value.
+            </param>
+        </member>
+        <member name="M:System.ComponentModel.Composition.ContractMismatchException.#ctor(System.String,System.Exception)">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/> class 
+                with the specified error message and exception that is the cause of the  
+                exception.
+            </summary>
+            <param name="message">
+                A <see cref="T:System.String"/> containing a message that describes the 
+                <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.Exception.Message"/> property to its default value.
+            </param>
+            <param name="innerException">
+                The <see cref="T:System.Exception"/> that is the underlying cause of the 
+                <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.Exception.InnerException"/> property to <see langword="null"/>.
+            </param>
+        </member>
+        <member name="M:System.ComponentModel.Composition.ContractMismatchException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/> class 
+                with the specified serialization data.
+            </summary>
+            <param name="info">
+                The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the 
+                <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/>.
+            </param>
+            <param name="context">
+                The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the 
+                source or destination.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="info"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.Runtime.Serialization.SerializationException">
+                <paramref name="info"/> is missing a required value.
+            </exception>
+            <exception cref="T:System.InvalidCastException">
+                <paramref name="info"/> contains a value that cannot be cast to the correct type.
+            </exception>
+        </member>
+        <member name="T:System.ComponentModel.Composition.CompositionError">
+            <summary>
+                Represents an error that occurs during composition in a <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.CompositionError.#ctor(System.String)">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CompositionError"/> class
+                with the specified error message.
+            </summary>
+            <param name="message">
+                A <see cref="T:System.String"/> containing a message that describes the 
+                <see cref="T:System.ComponentModel.Composition.CompositionError"/>; or <see langword="null"/> to set the 
+                <see cref="P:System.ComponentModel.Composition.CompositionError.Message"/> property to an empty string ("").
+            </param>
+        </member>
+        <member name="M:System.ComponentModel.Composition.CompositionError.#ctor(System.String,System.ComponentModel.Composition.Primitives.ICompositionElement)">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CompositionError"/> class
+                with the specified error message and composition element that is the
+                cause of the composition error.
+            </summary>
+            <param name="element">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ICompositionElement"/> that is the cause of the
+                <see cref="T:System.ComponentModel.Composition.CompositionError"/>; or <see langword="null"/> to set
+                the <see cref="P:System.ComponentModel.Composition.CompositionError.Element"/> property to 
+                <see langword="null"/>.
+            </param>
+            <param name="message">
+                A <see cref="T:System.String"/> containing a message that describes the 
+                <see cref="T:System.ComponentModel.Composition.CompositionError"/>; or <see langword="null"/> to set the 
+                <see cref="P:System.ComponentModel.Composition.CompositionError.Message"/> property to an empty string ("").
+            </param>
+        </member>
+        <member name="M:System.ComponentModel.Composition.CompositionError.#ctor(System.String,System.Exception)">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CompositionError"/> class 
+                with the specified error message and exception that is the cause of the  
+                composition error.
+            </summary>
+            <param name="message">
+                A <see cref="T:System.String"/> containing a message that describes the 
+                <see cref="T:System.ComponentModel.Composition.CompositionError"/>; or <see langword="null"/> to set the 
+                <see cref="P:System.ComponentModel.Composition.CompositionError.Message"/> property to an empty string ("").
+            </param>
+            <param name="exception">
+                The <see cref="P:System.ComponentModel.Composition.CompositionError.Exception"/> that is the underlying cause of the 
+                <see cref="T:System.ComponentModel.Composition.CompositionError"/>; or <see langword="null"/> to set
+                the <see cref="P:System.ComponentModel.Composition.CompositionError.Exception"/> property to <see langword="null"/>.
+            </param>
+        </member>
+        <member name="M:System.ComponentModel.Composition.CompositionError.#ctor(System.String,System.ComponentModel.Composition.Primitives.ICompositionElement,System.Exception)">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CompositionError"/> class 
+                with the specified error message, and composition element and exception that 
+                is the cause of the composition error.
+            </summary>
+            <param name="message">
+                A <see cref="T:System.String"/> containing a message that describes the 
+                <see cref="T:System.ComponentModel.Composition.CompositionError"/>; or <see langword="null"/> to set the 
+                <see cref="P:System.ComponentModel.Composition.CompositionError.Message"/> property to an empty string ("").
+            </param>
+            <param name="element">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ICompositionElement"/> that is the cause of the
+                <see cref="T:System.ComponentModel.Composition.CompositionError"/>; or <see langword="null"/> to set
+                the <see cref="P:System.ComponentModel.Composition.CompositionError.Element"/> property to 
+                <see langword="null"/>.
+            </param>
+            <param name="exception">
+                The <see cref="P:System.ComponentModel.Composition.CompositionError.Exception"/> that is the underlying cause of the 
+                <see cref="T:System.ComponentModel.Composition.CompositionError"/>; or <see langword="null"/> to set
+                the <see cref="P:System.ComponentModel.Composition.CompositionError.Exception"/> property to <see langword="null"/>.
+            </param>
+        </member>
+        <member name="M:System.ComponentModel.Composition.CompositionError.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CompositionError"/> class 
+                with the specified serialization data.
+            </summary>
+            <param name="info">
+                The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the 
+                <see cref="T:System.ComponentModel.Composition.CompositionError"/>.
+            </param>
+            <param name="context">
+                The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the 
+                source or destination.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="info"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.Runtime.Serialization.SerializationException">
+                <paramref name="info"/> is missing a required value.
+            </exception>
+            <exception cref="T:System.InvalidCastException">
+                <paramref name="info"/> contains a value that cannot be cast to the correct type.
+            </exception>
+        </member>
+        <member name="M:System.ComponentModel.Composition.CompositionError.ToString">
+            <summary>
+                Returns a string representation of the composition error.
+            </summary>
+            <returns>
+                A <see cref="T:System.String"/> containing the <see cref="P:System.ComponentModel.Composition.CompositionError.Message"/> property.
+            </returns>
+        </member>
+        <member name="M:System.ComponentModel.Composition.CompositionError.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+                Gets the serialization data of the exception.
+            </summary>
+            <param name="info">
+                The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/>.
+            </param>
+            <param name="context">
+                The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the 
+                source or destination.
+            </param>
+        </member>
+        <member name="M:System.ComponentModel.Composition.CompositionError.System#Runtime#Serialization#ISerializable#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+                Gets the serialization data of the exception.
+            </summary>
+            <param name="info">
+                The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/>.
+            </param>
+            <param name="context">
+                The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the 
+                source or destination.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="info"/> is <see langword="null"/>.
+            </exception>
+        </member>
+        <member name="P:System.ComponentModel.Composition.CompositionError.Element">
+            <summary>
+                Gets the composition element that is the cause of the error.
+            </summary>
+            <value>
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ICompositionElement"/> that is the cause of the
+                <see cref="T:System.ComponentModel.Composition.CompositionError"/>. The default is <see langword="null"/>.
+            </value>
+        </member>
+        <member name="P:System.ComponentModel.Composition.CompositionError.Message">
+            <summary>
+                Gets the message that describes the composition error.
+            </summary>
+            <value>
+                A <see cref="T:System.String"/> containing a message that describes the
+                <see cref="T:System.ComponentModel.Composition.CompositionError"/>.
+            </value>
+        </member>
+        <member name="P:System.ComponentModel.Composition.CompositionError.Exception">
+            <summary>
+                Gets the exception that is the underlying cause of the composition error.
+            </summary>
+            <value>
+                The <see cref="P:System.ComponentModel.Composition.CompositionError.Exception"/> that is the underlying cause of the 
+                <see cref="T:System.ComponentModel.Composition.CompositionError"/>. The default is <see langword="null"/>.
+            </value>
+        </member>
+        <member name="P:System.ComponentModel.Composition.CompositionResult`1.Value">
+            <summary>
+                Gets the value from the result, throwing a CompositionException if there are any errors.
+            </summary>
+        </member>
+        <member name="T:System.ComponentModel.Composition.ExportCollection`2">
+            <summary>
+                Represents a collection of <see cref="T:System.ComponentModel.Composition.Export`2"/> objects.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.ExportCollection`2.#ctor">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/> class 
+                that is empty.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.ExportCollection`2.#ctor(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Export{`0,`1}})">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/> class, 
+                adding the specified <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export`2"/> 
+                objects to the collection.
+            </summary>
+            <param name="items">
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export`2"/> objects to add 
+                to the <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/>; or <see langword="null"/> to create 
+                an <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/> that is empty.
+            </param>
+        </member>
+        <member name="T:System.ComponentModel.Composition.ExportCollection`1">
+            <summary>
+                Represents a collection of <see cref="T:System.ComponentModel.Composition.Export`1"/> objects.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.ExportCollection`1.#ctor">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/> class 
+                that is empty.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.ExportCollection`1.#ctor(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Export{`0}})">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/> class,
+                adding the specified <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export`1"/> 
+                objects to the collection.
+            </summary>
+            <param name="items">
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export`1"/> objects to add 
+                to the <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/>; or <see langword="null"/> to create an 
+                <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/> that is empty.
+            </param>
+        </member>
+        <member name="T:System.ComponentModel.Composition.Export`2">
+            <summary>
+                Represents an export. That is, a type that is made up of a delay-created exported object, 
+                metadata that describes that object and a strongly-typed view over that metadata.
+            </summary>
+        </member>
+        <member name="T:System.ComponentModel.Composition.Export`1">
+            <summary>
+                Represents an export. That is, a type that is made up of a delay-created exported object
+                and metadata that describes that object.
+            </summary>
+        </member>
+        <member name="T:System.ComponentModel.Composition.Primitives.Export">
+            <summary>
+                Represents an export. That is, a type that is made up of a delay-created exported object 
+                and metadata that describes that object.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Primitives.Export.#ctor">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> class.
             </summary>
-            <typeparam name="T">
-                The type of the <see cref="T:System.ComponentModel.Composition.Export`1"/> object to return. The contract name is also 
-                derived from this type parameter.
-            </typeparam>
-            <returns>
-                The <see cref="T:System.ComponentModel.Composition.Export`1"/> object with the contract name derived from 
-                <typeparamref name="T"/>.
-            </returns>
             <remarks>
-                <para>
-                    The returned <see cref="T:System.ComponentModel.Composition.Export`1"/> object is an instance of 
-                    <see cref="T:System.ComponentModel.Composition.Export`2"/> underneath, where 
-                    <c>TMetadataView</c>
-                    is <see cref="T:System.Collections.Generic.IDictionary`2"/> and where <c>TKey</c> 
-                    is <see cref="T:System.String"/> and <c>TValue</c> is <see cref="T:System.Object"/>.
-                </para>
-                <para>
-                    The contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
-                </para>
-                <para>
-                    The contract name is compared using a case-sensitive, non-linguistic comparison 
-                    using <see cref="P:System.StringComparer.Ordinal"/>.
-                </para>
+                <note type="inheritinfo">
+                    Derived types calling this constructor must override <see cref="P:System.ComponentModel.Composition.Primitives.Export.Definition"/>
+                    and <see cref="M:System.ComponentModel.Composition.Primitives.Export.GetExportedObjectCore"/>.
+                </note>
             </remarks>
-            <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
-                <para>
-                    There are zero <see cref="T:System.ComponentModel.Composition.Export`1"/> objects with the contract name derived 
-                    from <typeparamref name="T"/> in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
-                </para>
-                -or-
+        </member>
+        <member name="M:System.ComponentModel.Composition.Primitives.Export.#ctor(System.String,System.Func{System.Object})">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> class 
+                with the specified contract name and exported object getter.
+            </summary>
+            <param name="contractName">
+                A <see cref="T:System.String"/> containing the contract name of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>.
+            </param>
+            <param name="exportedObjectGetter">
+                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>. This allows the creation of the object to be delayed 
+                until <see cref="M:System.ComponentModel.Composition.Primitives.Export.GetExportedObject"/> is called.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="contractName"/> is <see langword="null"/>.
                 <para>
-                    There are more than one <see cref="T:System.ComponentModel.Composition.Export`1"/> objects with the contract name 
-                    derived from <typeparamref name="T"/> in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+                    -or-
                 </para>
+                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
             </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
+            <exception cref="T:System.ArgumentException">
+                <paramref name="contractName"/> is an empty string ("").
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExport``1(System.String)">
+        <member name="M:System.ComponentModel.Composition.Primitives.Export.#ctor(System.String,System.Collections.Generic.IDictionary{System.String,System.Object},System.Func{System.Object})">
             <summary>
-                Returns the export with the specified contract name, throwing an exception if there 
-                is not exactly one matching export.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> class 
+                with the specified contract name, metadata and exported object getter.
             </summary>
-            <typeparam name="T">
-                The type of the <see cref="T:System.ComponentModel.Composition.Export`1"/> object to return.
-            </typeparam>
             <param name="contractName">
-                A <see cref="T:System.String"/> containing the contract name of the <see cref="T:System.ComponentModel.Composition.Export`1"/> 
-                object to return; or <see langword="null"/> or an empty string ("") to use the 
-                default contract name.
+                A <see cref="T:System.String"/> containing the contract name of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>.
             </param>
-            <returns>
-                The <see cref="T:System.ComponentModel.Composition.Export`1"/> object with the specified contract name.
-            </returns>
-            <remarks>
-                <para>
-                    The returned <see cref="T:System.ComponentModel.Composition.Export`1"/> object is an instance of 
-                    <see cref="T:System.ComponentModel.Composition.Export`2"/> underneath, where 
-                    <c>TMetadataView</c>
-                    is <see cref="T:System.Collections.Generic.IDictionary`2"/> and where <c>TKey</c> 
-                    is <see cref="T:System.String"/> and <c>TValue</c> is <see cref="T:System.Object"/>.
-                </para>
-                <para>
-                    The contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
-                </para>
-                <para>
-                    The default contract name is compared using a case-sensitive, non-linguistic 
-                    comparison using <see cref="P:System.StringComparer.Ordinal"/>.
-                </para>
-            </remarks>
-            <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
+            <param name="metadata">
+                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>; or <see langword="null"/> to set the 
+                <see cref="P:System.ComponentModel.Composition.Primitives.Export.Metadata"/> property to an empty, read-only 
+                <see cref="T:System.Collections.Generic.IDictionary`2"/>.
+            </param>
+            <param name="exportedObjectGetter">
+                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>. This allows the creation of the object to be delayed 
+                until <see cref="M:System.ComponentModel.Composition.Primitives.Export.GetExportedObject"/> is called.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="contractName"/> is <see langword="null"/>.
                 <para>
-                    There are zero <see cref="T:System.ComponentModel.Composition.Export`1"/> objects with the specified contract name 
-                    in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+                    -or-
                 </para>
-                -or-
+                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ArgumentException">
+                <paramref name="contractName"/> is an empty string ("").
+            </exception>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Primitives.Export.#ctor(System.ComponentModel.Composition.Primitives.ExportDefinition,System.Func{System.Object})">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> class 
+                with the specified export definition and exported object getter.
+            </summary>
+            <param name="definition">
+                An <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> that describes the contract that the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> satisfies.
+            </param>
+            <param name="exportedObjectGetter">
+                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>. This allows the creation of the object to be delayed 
+                until  <see cref="M:System.ComponentModel.Composition.Primitives.Export.GetExportedObject"/> is called.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="definition"/> is <see langword="null"/>.
                 <para>
-                    There are more than one <see cref="T:System.ComponentModel.Composition.Export`1"/> objects with the specified contract
-                    name in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+                    -or-
                 </para>
+                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
             </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
+        </member>
+        <member name="M:System.ComponentModel.Composition.Primitives.Export.GetExportedObject">
+            <summary>
+                Returns the exported object of the export.
+            </summary>
+            <returns>
+                The exported <see cref="T:System.Object"/> of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>.
+            </returns>
+            <exception cref="T:System.ComponentModel.Composition.CompositionException">
+                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> will 
+                contain a collection of errors that occurred.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
+                The current instance is an instance of <see cref="T:System.ComponentModel.Composition.Export`1"/> and the underlying 
+                exported object cannot be cast to <c>T</c>.
+            </exception>
+            <exception cref="T:System.NotImplementedException">
+                The <see cref="M:System.ComponentModel.Composition.Primitives.Export.GetExportedObjectCore"/> method was not overridden by a derived class.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExport``1(System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.ExportDefinition,System.Boolean}})">
+        <member name="M:System.ComponentModel.Composition.Primitives.Export.GetExportedObjectCore">
             <summary>
-                Returns the export that matches the conditions defined by the specified constraint, 
-                throwing an exception if there is not exactly one matching export.
+                Returns the exported object of the export.
             </summary>
-            <typeparam name="T">
-                The type of the <see cref="T:System.ComponentModel.Composition.Export`1"/> object to return.
-            </typeparam>
-            <param name="constraint">
-                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
-                that defines the conditions of the <see cref="T:System.ComponentModel.Composition.Export`1"/> object to return or 
-                <see langword="null"/> to use the default contract name as the constraint.
-            </param>
             <returns>
-                The <see cref="T:System.ComponentModel.Composition.Export`1"/> object that matches the conditions defined by 
-                <paramref name="constraint"/>.
+                The exported <see cref="T:System.Object"/> of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>.
             </returns>
+            <exception cref="T:System.ComponentModel.Composition.CompositionException">
+                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> will 
+                contain a collection of errors that occurred.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
+                The current instance is an instance of <see cref="T:System.ComponentModel.Composition.Export`1"/> and the underlying 
+                exported object cannot be cast to <c>T</c>.
+            </exception>
+            <exception cref="T:System.NotImplementedException">
+                The method was not overridden by a derived class.
+            </exception>
+            <remarks>
+                <note type="inheritinfo">
+                    Overriders of this method should never return
+                    <see langword="null"/>.
+                </note>
+            </remarks>
+        </member>
+        <member name="P:System.ComponentModel.Composition.Primitives.Export.Definition">
+            <summary>
+                Gets the definition that describes the contract that the export satisfies.
+            </summary>
+            <value>
+                An <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> that describes the contract that 
+                the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> satisfies.
+            </value>
+            <exception cref="T:System.NotImplementedException">
+                This property was not overridden by a derived class.
+            </exception>
+            <remarks>
+                <note type="inheritinfo">
+                    Overriders of this property should never return
+                    <see langword="null"/>.
+                </note>
+            </remarks>
+        </member>
+        <member name="P:System.ComponentModel.Composition.Primitives.Export.Metadata">
+            <summary>
+                Gets the metadata of the export.
+            </summary>
+            <value>
+                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>.
+            </value>
+            <exception cref="T:System.NotImplementedException">
+                The <see cref="P:System.ComponentModel.Composition.Primitives.Export.Definition"/> property was not overridden by a derived class.
+            </exception>
             <remarks>
                 <para>
-                    The returned <see cref="T:System.ComponentModel.Composition.Export`1"/> object is an instance of 
-                    <see cref="T:System.ComponentModel.Composition.Export`2"/> underneath, where 
-                    <c>TMetadataView</c>
-                    is <see cref="T:System.Collections.Generic.IDictionary`2"/> and where <c>TKey</c> 
-                    is <see cref="T:System.String"/> and <c>TValue</c> is <see cref="T:System.Object"/>.
+                    This property returns the value of <see cref="P:System.ComponentModel.Composition.Primitives.ExportDefinition.Metadata"/>
+                    of the <see cref="P:System.ComponentModel.Composition.Primitives.Export.Definition"/> property.
                 </para>
+            </remarks>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Export`1.#ctor">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`1"/> class.
+            </summary>
+            <remarks>
+                <note type="inheritinfo">
+                    Derived types calling this constructor must override <see cref="P:System.ComponentModel.Composition.Primitives.Export.Definition"/>
+                    and <see cref="M:System.ComponentModel.Composition.Primitives.Export.GetExportedObjectCore"/>.
+                </note>
+            </remarks>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Export`1.#ctor(System.Func{`0})">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`1"/> class 
+                with the specified exported object getter and using a contract 
+                name derived from <typeparamref name="T"/>.
+            </summary>
+            <param name="exportedObjectGetter">
+                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
+                <see cref="T:System.ComponentModel.Composition.Export`1"/>. This allows the creation of the object to be delayed 
+                until  <see cref="M:System.ComponentModel.Composition.Export`1.GetExportedObject"/> is called.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
+            </exception>
+            <remarks>
                 <para>
-                    The contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                    The <see cref="P:System.ComponentModel.Composition.Primitives.ExportDefinition.ContractName"/> property of <see cref="P:System.ComponentModel.Composition.Primitives.Export.Definition"/> 
+                    is the result of calling <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on 
+                    <typeparamref name="T"/>.
                 </para>
+            </remarks>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Export`1.#ctor(System.String,System.Func{`0})">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`1"/> class 
+                with the specified contract name and exported object getter.
+            </summary>
+            <param name="contractName">
+                A <see cref="T:System.String"/> containing the contract name of the 
+                <see cref="T:System.ComponentModel.Composition.Export`1"/>.
+            </param>
+            <param name="exportedObjectGetter">
+                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
+                <see cref="T:System.ComponentModel.Composition.Export`1"/>. This allows the creation of the object to be delayed 
+                until <see cref="M:System.ComponentModel.Composition.Export`1.GetExportedObject"/> is called.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="contractName"/> is <see langword="null"/>.
                 <para>
-                    The default contract name is compared using a case-sensitive, non-linguistic 
-                    comparison using <see cref="P:System.StringComparer.Ordinal"/>.
+                    -or-
                 </para>
-            </remarks>
-            <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
+                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ArgumentException">
+                <paramref name="contractName"/> is an empty string ("").
+            </exception>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Export`1.#ctor(System.String,System.Collections.Generic.IDictionary{System.String,System.Object},System.Func{`0})">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`1"/> class 
+                with the specified contract name, metadata and exported object getter.
+            </summary>
+            <param name="contractName">
+                A <see cref="T:System.String"/> containing the contract name of the 
+                <see cref="T:System.ComponentModel.Composition.Export`1"/>.
+            </param>
+            <param name="metadata">
+                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
+                <see cref="T:System.ComponentModel.Composition.Export`1"/>; or <see langword="null"/> to set the 
+                <see cref="P:System.ComponentModel.Composition.Primitives.Export.Metadata"/> property to an empty, read-only 
+                <see cref="T:System.Collections.Generic.IDictionary`2"/>.
+            </param>
+            <param name="exportedObjectGetter">
+                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
+                <see cref="T:System.ComponentModel.Composition.Export`1"/>. This allows the creation of the object to be delayed 
+                until  <see cref="M:System.ComponentModel.Composition.Export`1.GetExportedObject"/> is called.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="contractName"/> is <see langword="null"/>.
                 <para>
-                    There are zero <see cref="T:System.ComponentModel.Composition.Export`1"/> objects that match the conditions 
-                    defined by <paramref name="constraint"/> in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+                    -or-
                 </para>
-                -or-
+                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ArgumentException">
+                <paramref name="contractName"/> is an empty string ("").
+            </exception>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Export`1.#ctor(System.ComponentModel.Composition.Primitives.ExportDefinition,System.Func{`0})">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`1"/> class 
+                with the specified export definition and exported object getter.
+            </summary>
+            <param name="definition">
+                An <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> that describes the contract that the 
+                <see cref="T:System.ComponentModel.Composition.Export`1"/> satisfies.
+            </param>
+            <param name="exportedObjectGetter">
+                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
+                <see cref="T:System.ComponentModel.Composition.Export`1"/>. This allows the creation of the object to be delayed 
+                until  <see cref="M:System.ComponentModel.Composition.Export`1.GetExportedObject"/> is called.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="definition"/> is <see langword="null"/>.
                 <para>
-                    There are more than one <see cref="T:System.ComponentModel.Composition.Export`1"/> objects that match the conditions 
-                    defined by <paramref name="constraint"/> in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+                    -or-
                 </para>
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
+                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExport``2">
+        <member name="M:System.ComponentModel.Composition.Export`1.GetExportedObject">
             <summary>
-                Returns the export with the contract name derived from the specified type parameter, 
-                throwing an exception if there is not exactly one matching export.
+                Returns the exported object of the export.
             </summary>
-            <typeparam name="T">
-                The type of the <see cref="T:System.ComponentModel.Composition.Export`2"/> object to return. The 
-                contract name is also derived from this type parameter.
-            </typeparam>
-            <typeparam name="TMetadataView">
-                The type of the metadata view of the <see cref="T:System.ComponentModel.Composition.Export`2"/> object
-                to return.
-            </typeparam>
             <returns>
-                The <see cref="T:System.ComponentModel.Composition.Export`2"/> object with the contract name derived 
-                from <typeparamref name="T"/>.
+                A <typeparamref name="T"/> representing the exported object of the 
+                <see cref="T:System.ComponentModel.Composition.Export`1"/>.
             </returns>
-            <remarks>
-                <para>
-                    The contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
-                </para>
-                <para>
-                    The contract name is compared using a case-sensitive, non-linguistic comparison 
-                    using <see cref="P:System.StringComparer.Ordinal"/>.
-                </para>
-            </remarks>
-            <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
-                <para>
-                    There are zero <see cref="T:System.ComponentModel.Composition.Export`2"/> objects with the contract 
-                    name derived from <typeparamref name="T"/> in the 
-                    <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
-                </para>
-                -or-
-                <para>
-                    There are more than one <see cref="T:System.ComponentModel.Composition.Export`2"/> objects with the 
-                    contract name derived from <typeparamref name="T"/> in the 
-                    <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
-                </para>
+            <exception cref="T:System.ComponentModel.Composition.CompositionException">
+                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> will
+                contain a collection of errors that occurred.
             </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
+            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
+                The underlying exported object cannot be cast to <typeparamref name="T"/>.
+            </exception>
+            <exception cref="T:System.NotImplementedException">
+                The <see cref="M:System.ComponentModel.Composition.Primitives.Export.GetExportedObjectCore"/> method was not overridden by a derived class.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExport``2(System.String)">
+        <member name="M:System.ComponentModel.Composition.Export`2.#ctor">
             <summary>
-                Returns the export with the specified contract name, throwing an exception if there 
-                is not exactly one matching export.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`2"/> class.
             </summary>
-            <typeparam name="T">
-                The type of the <see cref="T:System.ComponentModel.Composition.Export`2"/> object to return.
-            </typeparam>
-            <typeparam name="TMetadataView">
-                The type of the metadata view of the <see cref="T:System.ComponentModel.Composition.Export`2"/> object
-                to return.
-            </typeparam>
-            <param name="contractName">
-                A <see cref="T:System.String"/> containing the contract name of the 
-                <see cref="T:System.ComponentModel.Composition.Export`2"/> object to return; or <see langword="null"/> 
-                or an empty string ("") to use the default contract name.
+            <remarks>
+                <note type="inheritinfo">
+                    Derived types calling this constructor must override <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> 
+                    and <see cref="M:System.ComponentModel.Composition.Primitives.Export.GetExportedObjectCore"/>.
+                </note>
+            </remarks>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Export`2.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object},System.Func{`0})">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`1"/> class 
+                with the specified metadata, exported object getter and using a 
+                contract name derived from <typeparamref name="T"/>.
+            </summary>
+            <param name="metadata">
+                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
+                <see cref="T:System.ComponentModel.Composition.Export`2"/>; or <see langword="null"/> to set the 
+                <see cref="P:System.ComponentModel.Composition.Primitives.Export.Metadata"/> property to an empty, read-only 
+                <see cref="T:System.Collections.Generic.IDictionary`2"/>.
             </param>
-            <returns>
-                The <see cref="T:System.ComponentModel.Composition.Export`2"/> object with the specified contract name.
-            </returns>
+            <param name="exportedObjectGetter">
+                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
+                <see cref="T:System.ComponentModel.Composition.Export`1"/>. This allows the creation of the object to be delayed 
+                until <see cref="M:System.ComponentModel.Composition.Export`1.GetExportedObject"/> is called.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
+            </exception>
             <remarks>
                 <para>
-                    The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
-                </para>
-                <para>
-                    The contract name is compared using a case-sensitive, non-linguistic comparison 
-                    using <see cref="P:System.StringComparer.Ordinal"/>.
+                    The <see cref="P:System.ComponentModel.Composition.Primitives.ExportDefinition.ContractName"/> property of <see cref="P:System.ComponentModel.Composition.Primitives.Export.Definition"/> 
+                    is the result of calling <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on 
+                    <typeparamref name="T"/>.
                 </para>
             </remarks>
-            <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
-                <para>
-                    There are zero <see cref="T:System.ComponentModel.Composition.Export`2"/> objects with the 
-                    specified contract name in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
-                </para>
-                -or-
+        </member>
+        <member name="M:System.ComponentModel.Composition.Export`2.#ctor(System.String,System.Collections.Generic.IDictionary{System.String,System.Object},System.Func{`0})">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`2"/> class 
+                with the specified contract name, metadata and exported object getter.
+            </summary>
+            <param name="contractName">
+                A <see cref="T:System.String"/> containing the contract name of the 
+                <see cref="T:System.ComponentModel.Composition.Export`2"/>.
+            </param>
+            <param name="metadata">
+                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
+                <see cref="T:System.ComponentModel.Composition.Export`2"/>; or <see langword="null"/> to set the 
+                <see cref="P:System.ComponentModel.Composition.Primitives.Export.Metadata"/> property to an empty, read-only 
+                <see cref="T:System.Collections.Generic.IDictionary`2"/>.
+            </param>
+            <param name="exportedObjectGetter">
+                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
+                <see cref="T:System.ComponentModel.Composition.Export`2"/>. This allows the creation of the object to be delayed 
+                until <see cref="M:System.ComponentModel.Composition.Export`1.GetExportedObject"/> is called.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="contractName"/> is <see langword="null"/>.
                 <para>
-                    There are more than one <see cref="T:System.ComponentModel.Composition.Export`2"/> objects with the 
-                    specified contract name in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+                    -or-
                 </para>
+                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
             </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
+            <exception cref="T:System.ArgumentException">
+                <paramref name="contractName"/> is an empty string ("").
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExport``2(System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.ExportDefinition,System.Boolean}})">
+        <member name="M:System.ComponentModel.Composition.Export`2.#ctor(System.ComponentModel.Composition.Primitives.ExportDefinition,System.Func{`0})">
             <summary>
-                Returns the export that matches the conditions defined by the specified constraint,
-                throwing an exception if there is not exactly one matching export.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`2"/> class 
+                with the specified export definition and exported object getter.
             </summary>
-            <typeparam name="T">
-                The type of the <see cref="T:System.ComponentModel.Composition.Export`2"/> object to return.
-            </typeparam>
-            <typeparam name="TMetadataView">
-                The type of the metadata view of the <see cref="T:System.ComponentModel.Composition.Export`2"/> object
-                to return.
-            </typeparam>
-            <param name="constraint">
-                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
-                that defines the conditions of the <see cref="T:System.ComponentModel.Composition.Export`2"/> object to 
-                return or <see langword="null"/> to use the default contract name as the constraint.
+            <param name="definition">
+                An <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> that describes the contract that the 
+                <see cref="T:System.ComponentModel.Composition.Export`2"/> satisfies.
             </param>
-            <returns>
-                The <see cref="T:System.ComponentModel.Composition.Export`2"/> object that matches the conditions 
-                defined by <paramref name="constraint"/>.
-            </returns>
-            <remarks>
+            <param name="exportedObjectGetter">
+                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
+                <see cref="T:System.ComponentModel.Composition.Export`2"/>. This allows the creation of the object to be delayed 
+                until <see cref="M:System.ComponentModel.Composition.Export`1.GetExportedObject"/> is called.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="definition"/> is <see langword="null"/>.
                 <para>
-                    The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                    -or-
                 </para>
+                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
+            </exception>
+        </member>
+        <member name="P:System.ComponentModel.Composition.Export`2.MetadataView">
+            <summary>
+                Gets the metadata view for the export.
+            </summary>
+            <value>
+                A <typeparamref name="TMetadataView"/> representing the strongly-typed metadata view 
+                for the <see cref="T:System.ComponentModel.Composition.Export`2"/>.
+            </value>
+            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
+                The <see cref="P:System.ComponentModel.Composition.Primitives.Export.Metadata"/> property cannot be converted to <typeparamref name="TMetadataView"/>.
+            </exception>
+            <exception cref="T:System.NotImplementedException">
+                The <see cref="P:System.ComponentModel.Composition.Primitives.Export.Definition"/> property was not overridden by a derived class.
+            </exception>
+            <exception cref="T:System.InvalidOperationException">
+                <typeparamref name="TMetadataView"/> is not a valid metadata view type.
+            </exception>
+            <remarks>
                 <para>
-                    The contract name is compared using a case-sensitive, non-linguistic comparison 
-                    using <see cref="P:System.StringComparer.Ordinal"/>.
+                    This property represents a strong-typed view over the <see cref="P:System.ComponentModel.Composition.Primitives.Export.Metadata"/> property.
                 </para>
             </remarks>
+        </member>
+        <member name="T:System.ComponentModel.Composition.Hosting.ExportProvider">
+            <summary>
+                Defines the <see langword="abstract"/> base class for export providers, which provide
+                methods for retrieving <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.#ctor">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> class.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)">
+            <summary>
+                Returns all exports that match the conditions of the specified import.
+            </summary>
+            <param name="definition">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> that defines the conditions of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects to get.
+            </param>
+            <result>
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects that match 
+                the conditions defined by <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>, if found; otherwise, an 
+                empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
+            </result>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="definition"/> is <see langword="null"/>.
+            </exception>
             <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
                 <para>
-                    There are zero <see cref="T:System.ComponentModel.Composition.Export`2"/> objects that match the 
-                    conditions defined by <paramref name="constraint"/> in the 
-                    <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+                    <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.Cardinality"/> is <see cref="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ExactlyOne"/> and 
+                    there are zero <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects that match the conditions of the specified 
+                    <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>.
                 </para>
                 -or-
                 <para>
-                    There are more than one <see cref="T:System.ComponentModel.Composition.Export`2"/> objects that match 
-                    the conditions defined by <paramref name="constraint"/> in the 
-                    <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+                    <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.Cardinality"/> is <see cref="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ZeroOrOne"/> or 
+                    <see cref="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ExactlyOne"/> and there are more than one <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> 
+                    objects that match the conditions of the specified <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>.
                 </para>
             </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
-            </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExports(System.Type,System.Type,System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.ExportDefinition,System.Boolean}})">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExports(System.ComponentModel.Composition.Primitives.ImportDefinition,System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Primitives.Export}@)">
             <summary>
-                Returns the exports that match the conditions defined by the specified constraint.
+                Returns all exports that match the conditions of the specified import.
             </summary>
-            <param name="type">
-                The <see cref="T:System.Type"/> of the <see cref="T:System.ComponentModel.Composition.Export"/> objects to return.
-            </param>
-            <param name="metadataViewType">
-                The <see cref="T:System.Type"/> of the metadata view of the <see cref="T:System.ComponentModel.Composition.Export"/> objects to
-                return.
+            <param name="definition">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> that defines the conditions of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects to get.
             </param>
-            <param name="constraint">
-                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
-                that defines the conditions of the <see cref="T:System.ComponentModel.Composition.Export"/> objects to return or
-                <see langword="null"/> to use the default contract name as the constraint.
+            <param name="exports">
+                When this method returns, contains an <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> 
+                objects that match the conditions defined by <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>, if found; 
+                otherwise, an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
             </param>
             <returns>
-                An <see cref="T:System.ComponentModel.Composition.ExportCollection"/> containing the <see cref="T:System.ComponentModel.Composition.Export"/> objects that 
-                match the conditions defined by the specified constraint, if found; otherwise, an 
-                empty <see cref="T:System.ComponentModel.Composition.ExportCollection"/>.
+                <see langword="true"/> if <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.Cardinality"/> is 
+                <see cref="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ZeroOrOne"/> or <see cref="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ZeroOrMore"/> and 
+                there are zero <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects that match the conditions of the specified 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>. <see langword="true"/> if 
+                <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.Cardinality"/> is <see cref="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ZeroOrOne"/> or 
+                <see cref="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ExactlyOne"/> and there is exactly one <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> 
+                that matches the conditions of the specified <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>; otherwise, 
+                <see langword="false"/>.
             </returns>
-            <remarks>
-                <para>
-                    The returned <see cref="T:System.ComponentModel.Composition.Export"/> objects are instances of 
-                    <see cref="T:System.ComponentModel.Composition.Export`2"/> underneath, where <c>T</c>
-                    is <paramref name="type"/> and <c>TMetadataView</c> is 
-                    <paramref name="metadataViewType"/>.
-                </para>
-                <para>
-                    The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <paramref name="type"/>.
-                </para>
-                <para>
-                    The contract name is compared using a case-sensitive, non-linguistic comparison 
-                    using <see cref="P:System.StringComparer.Ordinal"/>.
-                </para>
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="type"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="definition"/> is <see langword="null"/>.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExports``1">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition)">
             <summary>
-                Returns the exports with the contract name derived from the specified type parameter.
+                Returns all exports that match the constraint defined by the specified definition.
+            </summary>
+            <param name="definition">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> that defines the conditions of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects to return.
+            </param>
+            <result>
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects that match 
+                the conditions defined by <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>, if found; otherwise, an 
+                empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
+            </result>
+            <remarks>
+                <note type="inheritinfo">
+                    Overriders of this method should not treat cardinality-related mismatches 
+                    as errors, and should not throw exceptions in those cases. For instance,
+                    if <see cref="P:System.ComponentModel.Composition.Primitives.ImportDefinition.Cardinality"/> is <see cref="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ExactlyOne"/> 
+                    and there are zero <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects that match the conditions of the 
+                    specified <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>, an <see cref="T:System.Collections.Generic.IEnumerable`1"/> should be returned.
+                </note>
+            </remarks>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.OnExportsChanged(System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs)">
+            <summary>
+                Raises the <see cref="E:System.ComponentModel.Composition.Hosting.ExportProvider.ExportsChanged"/> event.
+            </summary>
+            <param name="e">
+                An <see cref="T:System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs"/> containing the data for the event.
+            </param>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExport``1">
+            <summary>
+                Returns the export with the contract name derived from the specified type parameter, 
+                throwing an exception if there is not exactly one matching export.
             </summary>
             <typeparam name="T">
-                The type of the <see cref="T:System.ComponentModel.Composition.Export`1"/> objects to return. The contract name is also 
+                The type of the <see cref="T:System.ComponentModel.Composition.Export`1"/> object to return. The contract name is also 
                 derived from this type parameter.
             </typeparam>
             <returns>
-                An <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/> containing the <see cref="T:System.ComponentModel.Composition.Export`1"/> objects
-                with the contract name derived from <typeparamref name="T"/>, if found; otherwise,
-                an empty <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/>.
+                The <see cref="T:System.ComponentModel.Composition.Export`1"/> object with the contract name derived from 
+                <typeparamref name="T"/>.
             </returns>
             <remarks>
                 <para>
-                    The returned <see cref="T:System.ComponentModel.Composition.Export`1"/> objects are instances of 
+                    The returned <see cref="T:System.ComponentModel.Composition.Export`1"/> object is an instance of 
                     <see cref="T:System.ComponentModel.Composition.Export`2"/> underneath, where 
                     <c>TMetadataView</c>
                     is <see cref="T:System.Collections.Generic.IDictionary`2"/> and where <c>TKey</c> 
@@ -1093,1554 +2124,1138 @@
                 </para>
                 <para>
                     The contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
                 </para>
                 <para>
                     The contract name is compared using a case-sensitive, non-linguistic comparison 
                     using <see cref="P:System.StringComparer.Ordinal"/>.
                 </para>
             </remarks>
+            <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
+                <para>
+                    There are zero <see cref="T:System.ComponentModel.Composition.Export`1"/> objects with the contract name derived 
+                    from <typeparamref name="T"/> in the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
+                </para>
+                -or-
+                <para>
+                    There are more than one <see cref="T:System.ComponentModel.Composition.Export`1"/> objects with the contract name 
+                    derived from <typeparamref name="T"/> in the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
+                </para>
+            </exception>
             <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExports``1(System.String)">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExport``1(System.String)">
             <summary>
-                Returns the exports with the specified contract name.
+                Returns the export with the specified contract name, throwing an exception if there 
+                is not exactly one matching export.
             </summary>
             <typeparam name="T">
-                The type of the <see cref="T:System.ComponentModel.Composition.Export`1"/> objects to return.
+                The type of the <see cref="T:System.ComponentModel.Composition.Export`1"/> object to return.
             </typeparam>
             <param name="contractName">
                 A <see cref="T:System.String"/> containing the contract name of the <see cref="T:System.ComponentModel.Composition.Export`1"/> 
-                objects to return; or <see langword="null"/> or an empty string ("") to use the 
+                object to return; or <see langword="null"/> or an empty string ("") to use the 
                 default contract name.
             </param>
             <returns>
-                An <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/> containing the <see cref="T:System.ComponentModel.Composition.Export`1"/> objects
-                with the specified contract name, if found; otherwise, an empty 
-                <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/>.
+                The <see cref="T:System.ComponentModel.Composition.Export`1"/> object with the specified contract name.
             </returns>
             <remarks>
                 <para>
-                    The returned <see cref="T:System.ComponentModel.Composition.Export`1"/> objects are instances of 
+                    The returned <see cref="T:System.ComponentModel.Composition.Export`1"/> object is an instance of 
                     <see cref="T:System.ComponentModel.Composition.Export`2"/> underneath, where 
                     <c>TMetadataView</c>
                     is <see cref="T:System.Collections.Generic.IDictionary`2"/> and where <c>TKey</c> 
                     is <see cref="T:System.String"/> and <c>TValue</c> is <see cref="T:System.Object"/>.
                 </para>
                 <para>
-                    The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                    The contract name is the result of calling 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
                 </para>
                 <para>
-                    The contract name is compared using a case-sensitive, non-linguistic comparison 
-                    using <see cref="P:System.StringComparer.Ordinal"/>.
+                    The default contract name is compared using a case-sensitive, non-linguistic 
+                    comparison using <see cref="P:System.StringComparer.Ordinal"/>.
                 </para>
             </remarks>
+            <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
+                <para>
+                    There are zero <see cref="T:System.ComponentModel.Composition.Export`1"/> objects with the specified contract name 
+                    in the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
+                </para>
+                -or-
+                <para>
+                    There are more than one <see cref="T:System.ComponentModel.Composition.Export`1"/> objects with the specified contract
+                    name in the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
+                </para>
+            </exception>
             <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExports``1(System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.ExportDefinition,System.Boolean}})">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExport``1(System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.Primitives.ExportDefinition,System.Boolean}})">
             <summary>
-                Returns the exports that match the conditions defined by the specified constraint.
+                Returns the export that matches the conditions defined by the specified constraint, 
+                throwing an exception if there is not exactly one matching export.
             </summary>
             <typeparam name="T">
-                The type of the <see cref="T:System.ComponentModel.Composition.Export`1"/> objects to return.
+                The type of the <see cref="T:System.ComponentModel.Composition.Export`1"/> object to return.
             </typeparam>
             <param name="constraint">
                 A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
-                that defines the conditions of the <see cref="T:System.ComponentModel.Composition.Export`1"/> objects to 
-                return or <see langword="null"/> to use the default contract name as the constraint.
+                that defines the conditions of the <see cref="T:System.ComponentModel.Composition.Export`1"/> object to return or 
+                <see langword="null"/> to use the default contract name as the constraint.
             </param>
             <returns>
-                An <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/> containing the <see cref="T:System.ComponentModel.Composition.Export`1"/> objects
-                that match the conditions defined by the specified constraint, if found; otherwise, 
-                an empty <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/>.
+                The <see cref="T:System.ComponentModel.Composition.Export`1"/> object that matches the conditions defined by 
+                <paramref name="constraint"/>.
             </returns>
             <remarks>
                 <para>
-                    The returned <see cref="T:System.ComponentModel.Composition.Export`1"/> objects are instances of 
+                    The returned <see cref="T:System.ComponentModel.Composition.Export`1"/> object is an instance of 
                     <see cref="T:System.ComponentModel.Composition.Export`2"/> underneath, where 
                     <c>TMetadataView</c>
                     is <see cref="T:System.Collections.Generic.IDictionary`2"/> and where <c>TKey</c> 
                     is <see cref="T:System.String"/> and <c>TValue</c> is <see cref="T:System.Object"/>.
                 </para>
-                <para>
-                    The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
-                </para>
-                <para>
-                    The contract name is compared using a case-sensitive, non-linguistic comparison 
-                    using <see cref="P:System.StringComparer.Ordinal"/>.
-                </para>
-            </remarks>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
-            </exception>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExports``2">
-            <summary>
-                Returns the exports with the contract name derived from the specified type parameter.
-            </summary>
-            <typeparam name="T">
-                The type of the <see cref="T:System.ComponentModel.Composition.Export`2"/> objects to return. The 
-                contract name is also derived from this type parameter.
-            </typeparam>
-            <typeparam name="TMetadataView">
-                The type of the metadata view of the <see cref="T:System.ComponentModel.Composition.Export`2"/> objects
-                to return.
-            </typeparam>
-            <returns>
-                An <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/> containing the 
-                <see cref="T:System.ComponentModel.Composition.Export`2"/> objects with the contract name derived from 
-                <typeparamref name="T"/>, if found; otherwise, an empty 
-                <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/>.
-            </returns>
-            <remarks>
                 <para>
                     The contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
                 </para>
                 <para>
-                    The contract name is compared using a case-sensitive, non-linguistic comparison 
-                    using <see cref="P:System.StringComparer.Ordinal"/>.
+                    The default contract name is compared using a case-sensitive, non-linguistic 
+                    comparison using <see cref="P:System.StringComparer.Ordinal"/>.
                 </para>
             </remarks>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
-            </exception>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExports``2(System.String)">
-            <summary>
-                Returns the exports with the specified contract name.
-            </summary>
-            <typeparam name="T">
-                The type of the <see cref="T:System.ComponentModel.Composition.Export`2"/> objects to return. The 
-                contract name is also derived from this type parameter.
-            </typeparam>
-            <typeparam name="TMetadataView">
-                The type of the metadata view of the <see cref="T:System.ComponentModel.Composition.Export`2"/> objects
-                to return.
-            </typeparam>
-            <param name="contractName">
-                A <see cref="T:System.String"/> containing the contract name of the 
-                <see cref="T:System.ComponentModel.Composition.Export`2"/> objects to return; or <see langword="null"/> 
-                or an empty string ("") to use the default contract name.
-            </param>
-            <returns>
-                An <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/> containing the 
-                <see cref="T:System.ComponentModel.Composition.Export`2"/> objects with the specified contract name if 
-                found; otherwise, an empty <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/>.
-            </returns>
-            <remarks>
+            <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
                 <para>
-                    The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                    There are zero <see cref="T:System.ComponentModel.Composition.Export`1"/> objects that match the conditions 
+                    defined by <paramref name="constraint"/> in the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
                 </para>
+                -or-
                 <para>
-                    The contract name is compared using a case-sensitive, non-linguistic comparison 
-                    using <see cref="P:System.StringComparer.Ordinal"/>.
+                    There are more than one <see cref="T:System.ComponentModel.Composition.Export`1"/> objects that match the conditions 
+                    defined by <paramref name="constraint"/> in the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
                 </para>
-            </remarks>
+            </exception>
             <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExports``2(System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.ExportDefinition,System.Boolean}})">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExport``2">
             <summary>
-                Returns the exports that match the conditions defined by the specified constraint.
+                Returns the export with the contract name derived from the specified type parameter, 
+                throwing an exception if there is not exactly one matching export.
             </summary>
             <typeparam name="T">
-                The type of the <see cref="T:System.ComponentModel.Composition.Export`2"/> objects to return.
+                The type of the <see cref="T:System.ComponentModel.Composition.Export`2"/> object to return. The 
+                contract name is also derived from this type parameter.
             </typeparam>
             <typeparam name="TMetadataView">
-                The type of the metadata view of the <see cref="T:System.ComponentModel.Composition.Export`2"/> objects
+                The type of the metadata view of the <see cref="T:System.ComponentModel.Composition.Export`2"/> object
                 to return.
             </typeparam>
-            <param name="constraint">
-                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
-                that defines the conditions of the <see cref="T:System.ComponentModel.Composition.Export`2"/> objects to 
-                return or <see langword="null"/> to use the default contract name as the constraint.
-            </param>
-            <returns>
-                An <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/> containing the 
-                <see cref="T:System.ComponentModel.Composition.Export`2"/> objects that match the conditions defined by 
-                the specified constraint, if found; otherwise, an empty 
-                <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/>.
-            </returns>
-            <remarks>
-                <para>
-                    The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
-                </para>
-                <para>
-                    The contract name is compared using a case-sensitive, non-linguistic comparison 
-                    using <see cref="P:System.StringComparer.Ordinal"/>.
-                </para>
-            </remarks>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
-            </exception>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExportedObject``1">
-            <summary>
-                Returns the exported object with the contract name derived from the specified type 
-                parameter, throwing an exception if there is not exactly one matching exported object.
-            </summary>
-            <typeparam name="T">
-                The type of the exported object to return. The contract name is also 
-                derived from this type parameter.
-            </typeparam>
             <returns>
-                The exported <see cref="T:System.Object"/> with the contract name derived from 
-                <typeparamref name="T"/>.
+                The <see cref="T:System.ComponentModel.Composition.Export`2"/> object with the contract name derived 
+                from <typeparamref name="T"/>.
             </returns>
             <remarks>
                 <para>
                     The contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
                 </para>
                 <para>
                     The contract name is compared using a case-sensitive, non-linguistic comparison 
                     using <see cref="P:System.StringComparer.Ordinal"/>.
                 </para>
             </remarks>
-            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
-                The underlying exported object cannot be cast to <typeparamref name="T"/>.
-            </exception>
             <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
                 <para>
-                    There are zero exported objects with the contract name derived from 
-                    <typeparamref name="T"/> in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+                    There are zero <see cref="T:System.ComponentModel.Composition.Export`2"/> objects with the contract 
+                    name derived from <typeparamref name="T"/> in the 
+                    <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
                 </para>
                 -or-
                 <para>
-                    There are more than one exported objects with the contract name derived from
-                    <typeparamref name="T"/> in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+                    There are more than one <see cref="T:System.ComponentModel.Composition.Export`2"/> objects with the 
+                    contract name derived from <typeparamref name="T"/> in the 
+                    <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
                 </para>
             </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
+            <exception cref="T:System.InvalidOperationException">
+                <typeparamref name="TMetadataView"/> is not a valid metadata view type.
             </exception>
-            <exception cref="T:System.ComponentModel.Composition.CompositionException">
-                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Issues"/> will 
-                contain a list of errors that occurred.
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExportedObject``1(System.String)">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExport``2(System.String)">
             <summary>
-                Returns the exported object with the specified contract name, throwing an exception 
-                if there is not exactly one matching exported object.
+                Returns the export with the specified contract name, throwing an exception if there 
+                is not exactly one matching export.
             </summary>
             <typeparam name="T">
-                The type of the exported object to return.
+                The type of the <see cref="T:System.ComponentModel.Composition.Export`2"/> object to return.
+            </typeparam>
+            <typeparam name="TMetadataView">
+                The type of the metadata view of the <see cref="T:System.ComponentModel.Composition.Export`2"/> object
+                to return.
             </typeparam>
             <param name="contractName">
-                A <see cref="T:System.String"/> containing the contract name of the exported object to return,
-                or <see langword="null"/> or an empty string ("") to use the default contract name.
+                A <see cref="T:System.String"/> containing the contract name of the 
+                <see cref="T:System.ComponentModel.Composition.Export`2"/> object to return; or <see langword="null"/> 
+                or an empty string ("") to use the default contract name.
             </param>
             <returns>
-                The exported <see cref="T:System.Object"/> with the specified contract name.
+                The <see cref="T:System.ComponentModel.Composition.Export`2"/> object with the specified contract name.
             </returns>
             <remarks>
                 <para>
                     The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
                 </para>
                 <para>
                     The contract name is compared using a case-sensitive, non-linguistic comparison 
                     using <see cref="P:System.StringComparer.Ordinal"/>.
                 </para>
             </remarks>
-            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
-                The underlying exported object cannot be cast to <typeparamref name="T"/>.
-            </exception>
             <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
                 <para>
-                    There are zero exported objects with the specified contract name in the 
-                    <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+                    There are zero <see cref="T:System.ComponentModel.Composition.Export`2"/> objects with the 
+                    specified contract name in the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
                 </para>
                 -or-
                 <para>
-                    There are more than one exported objects with the specified contract name in the
-                    <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+                    There are more than one <see cref="T:System.ComponentModel.Composition.Export`2"/> objects with the 
+                    specified contract name in the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
                 </para>
             </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
+            <exception cref="T:System.InvalidOperationException">
+                <typeparamref name="TMetadataView"/> is not a valid metadata view type.
             </exception>
-            <exception cref="T:System.ComponentModel.Composition.CompositionException">
-                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Issues"/> will 
-                contain a list of errors that occurred.
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExportedObjectOrDefault``1">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExport``2(System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.Primitives.ExportDefinition,System.Boolean}})">
             <summary>
-                Returns the exported object with the contract name derived from the specified type 
-                parameter, throwing an exception if there is more than one matching exported object.
+                Returns the export that matches the conditions defined by the specified constraint,
+                throwing an exception if there is not exactly one matching export.
             </summary>
             <typeparam name="T">
-                The type of the exported object to return. The contract name is also 
-                derived from this type parameter.
+                The type of the <see cref="T:System.ComponentModel.Composition.Export`2"/> object to return.
+            </typeparam>
+            <typeparam name="TMetadataView">
+                The type of the metadata view of the <see cref="T:System.ComponentModel.Composition.Export`2"/> object
+                to return.
             </typeparam>
+            <param name="constraint">
+                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
+                that defines the conditions of the <see cref="T:System.ComponentModel.Composition.Export`2"/> object to 
+                return or <see langword="null"/> to use the default contract name as the constraint.
+            </param>
             <returns>
-                The exported <see cref="T:System.Object"/> with the contract name derived from 
-                <typeparamref name="T"/>, if found; otherwise, the default value for
-                <typeparamref name="T"/>.
+                The <see cref="T:System.ComponentModel.Composition.Export`2"/> object that matches the conditions 
+                defined by <paramref name="constraint"/>.
             </returns>
             <remarks>
                 <para>
-                    If the exported object is not found, then this method returns the appropriate 
-                    default value for <typeparamref name="T"/>; for example, 0 (zero) for integer 
-                    types, <see langword="false"/> for Boolean types, and <see langword="null"/> 
-                    for reference types.
-                </para>
-                <para>
-                    The contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                    The default contract name is the result of calling 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
                 </para>
                 <para>
                     The contract name is compared using a case-sensitive, non-linguistic comparison 
                     using <see cref="P:System.StringComparer.Ordinal"/>.
                 </para>
             </remarks>
-            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
-                The underlying exported object cannot be cast to <typeparamref name="T"/>.
-            </exception>
             <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
                 <para>
-                    There are more than one exported objects with the contract name derived from
-                    <typeparamref name="T"/> in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+                    There are zero <see cref="T:System.ComponentModel.Composition.Export`2"/> objects that match the 
+                    conditions defined by <paramref name="constraint"/> in the 
+                    <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
+                </para>
+                -or-
+                <para>
+                    There are more than one <see cref="T:System.ComponentModel.Composition.Export`2"/> objects that match 
+                    the conditions defined by <paramref name="constraint"/> in the 
+                    <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
                 </para>
             </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
+            <exception cref="T:System.InvalidOperationException">
+                <typeparamref name="TMetadataView"/> is not a valid metadata view type.
             </exception>
-            <exception cref="T:System.ComponentModel.Composition.CompositionException">
-                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Issues"/> will 
-                contain a list of errors that occurred.
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExportedObjectOrDefault``1(System.String)">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExports(System.Type,System.Type,System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.Primitives.ExportDefinition,System.Boolean}})">
             <summary>
-                Returns the exported object with the specified contract name, throwing an exception 
-                if there is more than one matching exported object.
+                Returns the exports that match the conditions defined by the specified constraint.
             </summary>
-            <typeparam name="T">
-                The type of the exported object to return.
-            </typeparam>
-            <param name="contractName">
-                A <see cref="T:System.String"/> containing the contract name of the exported object to return,
-                or <see langword="null"/> or an empty string ("") to use the default contract name.
+            <param name="type">
+                The <see cref="T:System.Type"/> of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects to return.
+            </param>
+            <param name="metadataViewType">
+                The <see cref="T:System.Type"/> of the metadata view of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects to
+                return.
+            </param>
+            <param name="constraint">
+                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
+                that defines the conditions of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects to return or
+                <see langword="null"/> to use the default contract name as the constraint.
             </param>
             <returns>
-                The exported <see cref="T:System.Object"/> with the specified contract name, if found; 
-                otherwise, the default value for <typeparamref name="T"/>.
+                An <see cref="T:System.ComponentModel.Composition.ExportCollection"/> containing the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects that 
+                match the conditions defined by the specified constraint, if found; otherwise, an 
+                empty <see cref="T:System.ComponentModel.Composition.ExportCollection"/>.
             </returns>
             <remarks>
                 <para>
-                    If the exported object is not found, then this method returns the appropriate 
-                    default value for <typeparamref name="T"/>; for example, 0 (zero) for integer 
-                    types, <see langword="false"/> for Boolean types, and <see langword="null"/> 
-                    for reference types.
+                    The returned <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects are instances of 
+                    <see cref="T:System.ComponentModel.Composition.Export`2"/> underneath, where <c>T</c>
+                    is <paramref name="type"/> and <c>TMetadataView</c> is 
+                    <paramref name="metadataViewType"/>.
                 </para>
                 <para>
                     The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <paramref name="type"/>.
                 </para>
                 <para>
                     The contract name is compared using a case-sensitive, non-linguistic comparison 
                     using <see cref="P:System.StringComparer.Ordinal"/>.
                 </para>
             </remarks>
-            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
-                The underlying exported object cannot be cast to <typeparamref name="T"/>.
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="type"/> is <see langword="null"/>.
             </exception>
-            <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
-                There are more than one exported objects with the specified contract name in the
-                <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+            <exception cref="T:System.InvalidOperationException">
+                <paramref name="metadataViewType"/> is not a valid metadata view type.
             </exception>
             <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
-            </exception>
-            <exception cref="T:System.ComponentModel.Composition.CompositionException">
-                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Issues"/> will 
-                contain a list of errors that occurred.
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExportedObjects``1">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExports``1">
             <summary>
-                Returns the exported objects with the contract name derived from the specified type 
-                parameter.
+                Returns the exports with the contract name derived from the specified type parameter.
             </summary>
             <typeparam name="T">
-                The type of the exported object to return. The contract name is also 
+                The type of the <see cref="T:System.ComponentModel.Composition.Export`1"/> objects to return. The contract name is also 
                 derived from this type parameter.
             </typeparam>
             <returns>
-                An <see cref="T:System.Collections.ObjectModel.Collection`1"/> containing the exported objects with the contract name 
-                derived from the specified type parameter, if found; otherwise, an empty 
-                <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
+                An <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/> containing the <see cref="T:System.ComponentModel.Composition.Export`1"/> objects
+                with the contract name derived from <typeparamref name="T"/>, if found; otherwise,
+                an empty <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/>.
             </returns>
             <remarks>
+                <para>
+                    The returned <see cref="T:System.ComponentModel.Composition.Export`1"/> objects are instances of 
+                    <see cref="T:System.ComponentModel.Composition.Export`2"/> underneath, where 
+                    <c>TMetadataView</c>
+                    is <see cref="T:System.Collections.Generic.IDictionary`2"/> and where <c>TKey</c> 
+                    is <see cref="T:System.String"/> and <c>TValue</c> is <see cref="T:System.Object"/>.
+                </para>
                 <para>
                     The contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
                 </para>
                 <para>
                     The contract name is compared using a case-sensitive, non-linguistic comparison 
                     using <see cref="P:System.StringComparer.Ordinal"/>.
                 </para>
             </remarks>
-            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
-                One or more of the underlying exported objects cannot be cast to 
-                <typeparamref name="T"/>.
-            </exception>
             <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
-            </exception>
-            <exception cref="T:System.ComponentModel.Composition.CompositionException">
-                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Issues"/> will 
-                contain a list of errors that occurred.
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportProvider.GetExportedObjects``1(System.String)">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExports``1(System.String)">
             <summary>
-                Returns the exported objects with the specified contract name.
+                Returns the exports with the specified contract name.
             </summary>
             <typeparam name="T">
-                The type of the exported object to return.
+                The type of the <see cref="T:System.ComponentModel.Composition.Export`1"/> objects to return.
             </typeparam>
             <param name="contractName">
-                A <see cref="T:System.String"/> containing the contract name of the exported objects to 
-                return; or <see langword="null"/> or an empty string ("") to use the default 
-                contract name.
+                A <see cref="T:System.String"/> containing the contract name of the <see cref="T:System.ComponentModel.Composition.Export`1"/> 
+                objects to return; or <see langword="null"/> or an empty string ("") to use the 
+                default contract name.
             </param>
             <returns>
-                An <see cref="T:System.Collections.ObjectModel.Collection`1"/> containing the exported objects with the specified 
-                contract name, if found; otherwise, an empty <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
+                An <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/> containing the <see cref="T:System.ComponentModel.Composition.Export`1"/> objects
+                with the specified contract name, if found; otherwise, an empty 
+                <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/>.
             </returns>
             <remarks>
+                <para>
+                    The returned <see cref="T:System.ComponentModel.Composition.Export`1"/> objects are instances of 
+                    <see cref="T:System.ComponentModel.Composition.Export`2"/> underneath, where 
+                    <c>TMetadataView</c>
+                    is <see cref="T:System.Collections.Generic.IDictionary`2"/> and where <c>TKey</c> 
+                    is <see cref="T:System.String"/> and <c>TValue</c> is <see cref="T:System.Object"/>.
+                </para>
                 <para>
                     The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
                 </para>
                 <para>
                     The contract name is compared using a case-sensitive, non-linguistic comparison 
                     using <see cref="P:System.StringComparer.Ordinal"/>.
                 </para>
             </remarks>
-            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
-                One or more of the underlying exported objects cannot be cast to 
-                <typeparamref name="T"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
-            </exception>
-            <exception cref="T:System.ComponentModel.Composition.CompositionException">
-                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Issues"/> will 
-                contain a list of errors that occurred.
-            </exception>
-        </member>
-        <member name="E:System.ComponentModel.Composition.ExportProvider.ExportsChanged">
-            <summary>
-                Occurs when the exports in the <see cref="T:System.ComponentModel.Composition.ExportProvider"/> change.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AdaptingExportProvider.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.AdaptingExportProvider"/> class.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AdaptingExportProvider.Dispose">
-            <summary>
-            Releases unmanaged and - optionally - managed resources
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AdaptingExportProvider.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:System.ComponentModel.Composition.AdaptingExportProvider.OnExportsChanged(System.ComponentModel.Composition.ExportsChangedEventArgs)">
-            <summary>
-            Raises the <see cref="E:System.ComponentModel.Composition.AggregatingExportProvider.ExportsChanged"/> event.
-            </summary>
-            <param name="e">The <see cref="T:System.ComponentModel.Composition.ExportsChangedEventArgs"/> instance containing the event data.</param>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AdaptingExportProvider.GetExportsCore(System.ComponentModel.Composition.ImportDefinition)">
-            <summary>
-            Returns all exports that match the conditions of the specified import.
-            </summary>
-            <param name="importDefinition">The <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> that defines the conditions of the
-            <see cref="T:System.ComponentModel.Composition.Export"/> to get.</param>
-            <returns></returns>
-            <result>
-            An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/> objects that match
-            the conditions defined by <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>, if found; otherwise, an
-            empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            </result>
-            <remarks>
-            	<note type="inheritinfo">
-            The implementers should not treat the cardinality-related mismatches as errors, and are not
-            expected to throw exceptions in those cases.
-            For instance, if the import requests exactly one export and the provider has no matching exports or more than one,
-            it should return an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/>.
-            </note>
-            </remarks>
-        </member>
-        <member name="P:System.ComponentModel.Composition.AdaptingExportProvider.SourceProvider">
-            <summary>
-            Gets or sets the source provider.
-            </summary>
-            <value>The source provider.</value>
-        </member>
-        <member name="E:System.ComponentModel.Composition.AdaptingExportProvider.ExportsChanged">
-            <summary>
-                Occurs when the exports in the <see cref="T:System.ComponentModel.Composition.ExportProvider"/> change.
-            </summary>
-            <remarks>
-                The <see cref="E:System.ComponentModel.Composition.AdaptingExportProvider.ExportsChanged"/> event passes an <see cref="T:System.ComponentModel.Composition.ExportsChangedEventArgs"/>
-                which provides a list of contract names for the exports that have changed. An export
-                is considered to have changed if it has been added, removed, or updated in the 
-                <see cref="T:System.ComponentModel.Composition.AdaptingExportProvider"/>.
-            </remarks>
-        </member>
-        <member name="T:System.ComponentModel.Composition.ComposablePart">
-            <summary>
-                Defines the <see langword="abstract"/> base class for composable parts, which 
-                import and produce exported objects.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePart.#ctor">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ComposablePart"/> class.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePart.Dispose">
-            <summary>
-                Releases all resources used by the <see cref="T:System.ComponentModel.Composition.ComposablePart"/>.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePart.OnComposed">
-            <summary>
-                Called by the composition engine when all required imports on the part have been
-                satisfied.
-            </summary>
             <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.ComposablePart"/> has been disposed of.
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePart.GetExportedObject(System.ComponentModel.Composition.ExportDefinition)">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExports``1(System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.Primitives.ExportDefinition,System.Boolean}})">
             <summary>
-                Gets the exported object described by the specified definition.
+                Returns the exports that match the conditions defined by the specified constraint.
             </summary>
-            <param name="definition">
-                One of the <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> objects from the 
-                <see cref="P:System.ComponentModel.Composition.ComposablePart.ExportDefinitions"/> property describing the exported object
-                to return.
+            <typeparam name="T">
+                The type of the <see cref="T:System.ComponentModel.Composition.Export`1"/> objects to return.
+            </typeparam>
+            <param name="constraint">
+                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
+                that defines the conditions of the <see cref="T:System.ComponentModel.Composition.Export`1"/> objects to 
+                return or <see langword="null"/> to use the default contract name as the constraint.
             </param>
             <returns>
-                The exported <see cref="T:System.Object"/> described by <paramref name="definition"/>.
+                An <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/> containing the <see cref="T:System.ComponentModel.Composition.Export`1"/> objects
+                that match the conditions defined by the specified constraint, if found; otherwise, 
+                an empty <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/>.
             </returns>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="definition"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-                <paramref name="definition"/> did not originate from the <see cref="P:System.ComponentModel.Composition.ComposablePart.ExportDefinitions"/>
-                property on the <see cref="T:System.ComponentModel.Composition.ComposablePart"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.ComposablePart"/> has been disposed of.
-            </exception>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePart.SetImport(System.ComponentModel.Composition.ImportDefinition,System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Export})">
-            <summary>
-                Sets the import described by the specified definition with the specified exports.
-            </summary>
-            <param name="import">
-                One of the <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> objects from the 
-                <see cref="P:System.ComponentModel.Composition.ComposablePart.ImportDefinitions"/> property describing the import to be set.
-            </param>
-            <param name="exports">
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/> objects of which 
-                to set the import described by <paramref name="definition"/>.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="definition"/> is <see langword="null"/>.
-                <para>
-                    -or-
-                </para>
-                <paramref name="exports"/> is <see langword="null"/>.
-                <para>
-                    -or-
-                </para>
-                <paramref name="exports"/> contains an element that is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-                <paramref name="definition"/> did not originate from the <see cref="P:System.ComponentModel.Composition.ComposablePart.ImportDefinitions"/>
-                property on the <see cref="T:System.ComponentModel.Composition.ComposablePart"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.ComposablePart"/> has been disposed of.
-            </exception>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePart.Dispose(System.Boolean)">
-            <summary>
-                Releases the unmanaged resources used by the <see cref="T:System.ComponentModel.Composition.ComposablePart"/> and 
-                optionally releases the managed resources.
-            </summary>
-            <param name="disposing">
-                <see langword="true"/> to release both managed and unmanaged resources; 
-                <see langword="false"/> to release only unmanaged resources.
-            </param>
-        </member>
-        <member name="P:System.ComponentModel.Composition.ComposablePart.ExportDefinitions">
-            <summary>
-                Gets the export definitions that describe the exported objects provided by the part.
-            </summary>
-            <value>
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> objects describing
-                the exported objects provided by the <see cref="T:System.ComponentModel.Composition.ComposablePart"/>.
-            </value>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.ComposablePart"/> has been disposed of.
-            </exception>
-            <remarks>
-                <para>
-                    <note type="inheritinfo">
-                        If the <see cref="T:System.ComponentModel.Composition.ComposablePart"/> was created from a 
-                        <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/>, this property should return the result of 
-                        <see cref="P:System.ComponentModel.Composition.ComposablePartDefinition.ExportDefinitions"/>.
-                    </note>
-                 </para>
-                 <para>
-                    <note type="inheritinfo">
-                        Overriders of this property should never return <see langword="null"/>.
-                        If the <see cref="T:System.ComponentModel.Composition.ComposablePart"/> does not have exports, return an empty 
-                        <see cref="T:System.Collections.Generic.IEnumerable`1"/> instead.
-                    </note>
-                </para>
-            </remarks>
-        </member>
-        <member name="P:System.ComponentModel.Composition.ComposablePart.ImportDefinitions">
-            <summary>
-                Gets the import definitions that describe the imports required by the part.
-            </summary>
-            <value>
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> objects describing
-                the imports required by the <see cref="T:System.ComponentModel.Composition.ComposablePart"/>.
-            </value>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.ComposablePart"/> has been disposed of.
-            </exception>
             <remarks>
                 <para>
-                    <note type="inheritinfo">
-                        If the <see cref="T:System.ComponentModel.Composition.ComposablePart"/> was created from a 
-                        <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/>, this property should return the result of 
-                        <see cref="P:System.ComponentModel.Composition.ComposablePartDefinition.ImportDefinitions"/>.
-                    </note>
-                 </para>
-                 <para>
-                    <note type="inheritinfo">
-                        Overrides of this property should never return <see langword="null"/>.
-                        If the <see cref="T:System.ComponentModel.Composition.ComposablePart"/> does not have imports, return an empty 
-                        <see cref="T:System.Collections.Generic.IEnumerable`1"/> instead.
-                    </note>
+                    The returned <see cref="T:System.ComponentModel.Composition.Export`1"/> objects are instances of 
+                    <see cref="T:System.ComponentModel.Composition.Export`2"/> underneath, where 
+                    <c>TMetadataView</c>
+                    is <see cref="T:System.Collections.Generic.IDictionary`2"/> and where <c>TKey</c> 
+                    is <see cref="T:System.String"/> and <c>TValue</c> is <see cref="T:System.Object"/>.
+                </para>
+                <para>
+                    The default contract name is the result of calling 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                </para>
+                <para>
+                    The contract name is compared using a case-sensitive, non-linguistic comparison 
+                    using <see cref="P:System.StringComparer.Ordinal"/>.
                 </para>
             </remarks>
-        </member>
-        <member name="P:System.ComponentModel.Composition.ComposablePart.Metadata">
-            <summary>
-                Gets the metadata of the part.
-            </summary>
-            <value>
-                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
-                <see cref="T:System.ComponentModel.Composition.ComposablePart"/>. The default is an empty, read-only
-                <see cref="T:System.Collections.Generic.IDictionary`2"/>.
-            </value>
             <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.ComposablePart"/> has been disposed of.
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
-            <remarks>
-                <para>
-                    <note type="inheritinfo">
-                        If the <see cref="T:System.ComponentModel.Composition.ComposablePart"/> was created from a 
-                        <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/>, this property should return the result of 
-                        <see cref="P:System.ComponentModel.Composition.ComposablePartDefinition.Metadata"/>.
-                    </note>
-                 </para>
-                 <para>
-                    <note type="inheritinfo">
-                        Overriders of this property should return a read-only
-                        <see cref="T:System.Collections.Generic.IDictionary`2"/> object with a case-sensitive, 
-                        non-linguistic comparer, such as <see cref="P:System.StringComparer.Ordinal"/>, 
-                        and should never return <see langword="null"/>. If the 
-                        <see cref="T:System.ComponentModel.Composition.ComposablePart"/> does not contain metadata, return an 
-                        empty <see cref="T:System.Collections.Generic.IDictionary`2"/> instead.
-                    </note>
-                 </para>
-            </remarks>
         </member>
-        <member name="T:System.ComponentModel.Composition.AggregatingComposablePartCatalog">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExports``2">
             <summary>
-                A mutable collection of ComposablePartCatalogs.  The events are called back using the
-                synchronization context created when the instance is constructed.
+                Returns the exports with the contract name derived from the specified type parameter.
             </summary>
+            <typeparam name="T">
+                The type of the <see cref="T:System.ComponentModel.Composition.Export`2"/> objects to return. The 
+                contract name is also derived from this type parameter.
+            </typeparam>
+            <typeparam name="TMetadataView">
+                The type of the metadata view of the <see cref="T:System.ComponentModel.Composition.Export`2"/> objects
+                to return.
+            </typeparam>
+            <returns>
+                An <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/> containing the 
+                <see cref="T:System.ComponentModel.Composition.Export`2"/> objects with the contract name derived from 
+                <typeparamref name="T"/>, if found; otherwise, an empty 
+                <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/>.
+            </returns>
             <remarks>
-                This type is thread safe.
+                <para>
+                    The contract name is the result of calling 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                </para>
+                <para>
+                    The contract name is compared using a case-sensitive, non-linguistic comparison 
+                    using <see cref="P:System.StringComparer.Ordinal"/>.
+                </para>
             </remarks>
+            <exception cref="T:System.InvalidOperationException">
+                <typeparamref name="TMetadataView"/> is not a valid metadata view type.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
+            </exception>
         </member>
-        <member name="T:System.ComponentModel.Composition.ComposablePartCatalog">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExports``2(System.String)">
             <summary>
-                Defines the <see langword="abstract"/> base class for composable part catalogs, which produce
-                and return <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> objects.
+                Returns the exports with the specified contract name.
             </summary>
+            <typeparam name="T">
+                The type of the <see cref="T:System.ComponentModel.Composition.Export`2"/> objects to return. The 
+                contract name is also derived from this type parameter.
+            </typeparam>
+            <typeparam name="TMetadataView">
+                The type of the metadata view of the <see cref="T:System.ComponentModel.Composition.Export`2"/> objects
+                to return.
+            </typeparam>
+            <param name="contractName">
+                A <see cref="T:System.String"/> containing the contract name of the 
+                <see cref="T:System.ComponentModel.Composition.Export`2"/> objects to return; or <see langword="null"/> 
+                or an empty string ("") to use the default contract name.
+            </param>
+            <returns>
+                An <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/> containing the 
+                <see cref="T:System.ComponentModel.Composition.Export`2"/> objects with the specified contract name if 
+                found; otherwise, an empty <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/>.
+            </returns>
             <remarks>
-                This type is thread safe.
+                <para>
+                    The default contract name is the result of calling 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                </para>
+                <para>
+                    The contract name is compared using a case-sensitive, non-linguistic comparison 
+                    using <see cref="P:System.StringComparer.Ordinal"/>.
+                </para>
             </remarks>
+            <exception cref="T:System.InvalidOperationException">
+                <typeparamref name="TMetadataView"/> is not a valid metadata view type.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
+            </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePartCatalog.#ctor">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ComposablePartCatalog"/> class.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePartCatalog.GetExports(System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.ExportDefinition,System.Boolean}})">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExports``2(System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.Primitives.ExportDefinition,System.Boolean}})">
             <summary>
-                Returns the export definitions that match the conditions defined by the specified constraint.
+                Returns the exports that match the conditions defined by the specified constraint.
             </summary>
+            <typeparam name="T">
+                The type of the <see cref="T:System.ComponentModel.Composition.Export`2"/> objects to return.
+            </typeparam>
+            <typeparam name="TMetadataView">
+                The type of the metadata view of the <see cref="T:System.ComponentModel.Composition.Export`2"/> objects
+                to return.
+            </typeparam>
             <param name="constraint">
                 A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
-                that defines the conditions of the <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> objects to return.
+                that defines the conditions of the <see cref="T:System.ComponentModel.Composition.Export`2"/> objects to 
+                return or <see langword="null"/> to use the default contract name as the constraint.
             </param>
             <returns>
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.Tuple`2"/> containing the 
-                <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> objects and their associated 
-                <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> objects that match the conditions defined 
-                by <paramref name="constraint"/>.
+                An <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/> containing the 
+                <see cref="T:System.ComponentModel.Composition.Export`2"/> objects that match the conditions defined by 
+                the specified constraint, if found; otherwise, an empty 
+                <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/>.
             </returns>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="constraint"/> is <see langword="null"/>.
+            <remarks>
+                <para>
+                    The default contract name is the result of calling 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                </para>
+                <para>
+                    The contract name is compared using a case-sensitive, non-linguistic comparison 
+                    using <see cref="P:System.StringComparer.Ordinal"/>.
+                </para>
+            </remarks>
+            <exception cref="T:System.InvalidOperationException">
+                <typeparamref name="TMetadataView"/> is not a valid metadata view type.
             </exception>
             <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.ComposablePartCatalog"/> has been disposed of.
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
-            <remarks>
-                <note type="inheritinfo">
-                    Overriders of this property should never return <see langword="null"/>, if no 
-                    <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> match the conditions defined by 
-                    <paramref name="constraint"/>, return an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-                </note>
-            </remarks>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePartCatalog.Dispose">
-            <summary>
-                Releases the unmanaged resources used by the <see cref="T:System.ComponentModel.Composition.ComposablePartCatalog"/> and 
-                optionally releases the managed resources.
-            </summary>
-            <param name="disposing">
-                <see langword="true"/> to release both managed and unmanaged resources; 
-                <see langword="false"/> to release only unmanaged resources.
-            </param>
         </member>
-        <member name="P:System.ComponentModel.Composition.ComposablePartCatalog.Parts">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExportedObject``1">
             <summary>
-                Gets the part definitions of the catalog.
+                Returns the exported object with the contract name derived from the specified type 
+                parameter, throwing an exception if there is not exactly one matching exported object.
             </summary>
-            <value>
-                A <see cref="T:System.Linq.IQueryable`1"/> of <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> objects of the 
-                <see cref="T:System.ComponentModel.Composition.ComposablePartCatalog"/>.
-            </value>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.ComposablePartCatalog"/> has been disposed of.
-            </exception>
+            <typeparam name="T">
+                The type of the exported object to return. The contract name is also 
+                derived from this type parameter.
+            </typeparam>
+            <returns>
+                The exported <see cref="T:System.Object"/> with the contract name derived from 
+                <typeparamref name="T"/>.
+            </returns>
             <remarks>
-                <note type="inheritinfo">
-                    Overriders of this property should never return <see langword="null"/>.
-                </note>
+                <para>
+                    The contract name is the result of calling 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                </para>
+                <para>
+                    The contract name is compared using a case-sensitive, non-linguistic comparison 
+                    using <see cref="P:System.StringComparer.Ordinal"/>.
+                </para>
             </remarks>
-        </member>
-        <member name="T:System.ComponentModel.Composition.INotifyComposablePartCatalogChanged">
-            <summary>
-                Notifications when a ComposablePartCatalog changes.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.Caching.ICachedComposablePartCatalog.CacheCatalog(System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter)">
-            <summary>
-            Caches the contents of the catalog using the specified  <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter"/>.
-            </summary>
-            <param name="writer">The cache writer.</param>
-            <returns>The cache token corresponding to the written catalog cache.</returns>
-        </member>
-        <member name="P:System.ComponentModel.Composition.Caching.ICachedComposablePartCatalog.IsCacheUpToDate">
-            <summary>
-            Specifies whether the cache the state of the catalog has changed since the last time it was read from the cache.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AggregatingComposablePartCatalog.#ctor">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.AggregatingComposablePartCatalog"/> class.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AggregatingComposablePartCatalog.#ctor(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.ComposablePartCatalog})">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.AggregatingComposablePartCatalog"/> class
-                with the specified catalogs.
-            </summary>
-            <param name="catalogs">
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.ComposablePartCatalog"/> objects to add
-                to the <see cref="T:System.ComponentModel.Composition.AggregatingComposablePartCatalog"/>; or <see langword="null"/> to 
-                create an <see cref="T:System.ComponentModel.Composition.AggregatingComposablePartCatalog"/> that is empty.
-            </param>
-            <exception cref="T:System.ArgumentException">
-                <paramref name="catalogs"/> contains an element that is <see langword="null"/>.
+            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
+                The underlying exported object cannot be cast to <typeparamref name="T"/>.
             </exception>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AggregatingComposablePartCatalog.#ctor(System.ComponentModel.Composition.Caching.ComposablePartCatalogCache)">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.AggregatingComposablePartCatalog"/> class 
-                with the specified cache.
-            </summary>
-            <param name="cache">
-                The <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCache"/> to read the <see cref="T:System.ComponentModel.Composition.AggregatingComposablePartCatalog"/> 
-                from.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="cache"/> is <see langword="null"/>.
+            <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
+                <para>
+                    There are zero exported objects with the contract name derived from 
+                    <typeparamref name="T"/> in the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
+                </para>
+                -or-
+                <para>
+                    There are more than one exported objects with the contract name derived from
+                    <typeparamref name="T"/> in the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
+                </para>
             </exception>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AggregatingComposablePartCatalog.CacheCatalog(System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter)">
-            <summary>
-               Caches the catalog using the specified cache writer
-            </summary>
-            <param name="writer">
-               The <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter"/> to use to cache the 
-               <see cref="T:System.ComponentModel.Composition.AggregatingComposablePartCatalog"/>.
-            </param>
-            <returns></returns>
             <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.AggregatingComposablePartCatalog"/> has been disposed of.
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.CompositionException">
+                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> will 
+                contain a collection of errors that occurred.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.AggregatingComposablePartCatalog.GetExports(System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.ExportDefinition,System.Boolean}})">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExportedObject``1(System.String)">
             <summary>
-                Returns the export definitions that match the conditions defined by the specified constraint.
+                Returns the exported object with the specified contract name, throwing an exception 
+                if there is not exactly one matching exported object.
             </summary>
-            <param name="constraint">
-                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
-                that defines the conditions of the <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> objects to return.
+            <typeparam name="T">
+                The type of the exported object to return.
+            </typeparam>
+            <param name="contractName">
+                A <see cref="T:System.String"/> containing the contract name of the exported object to return,
+                or <see langword="null"/> or an empty string ("") to use the default contract name.
             </param>
             <returns>
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.Tuple`2"/> containing the 
-                <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> objects and their associated 
-                <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> objects that matche the conditions defined 
-                by <paramref name="constraint"/>.
+                The exported <see cref="T:System.Object"/> with the specified contract name.
             </returns>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="constraint"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.AggregatingComposablePartCatalog"/> has been disposed of.
+            <remarks>
+                <para>
+                    The default contract name is the result of calling 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                </para>
+                <para>
+                    The contract name is compared using a case-sensitive, non-linguistic comparison 
+                    using <see cref="P:System.StringComparer.Ordinal"/>.
+                </para>
+            </remarks>
+            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
+                The underlying exported object cannot be cast to <typeparamref name="T"/>.
             </exception>
-        </member>
-        <member name="P:System.ComponentModel.Composition.AggregatingComposablePartCatalog.IsCacheUpToDate">
-            <summary>
-                Gets a value indicating whether the underlying cache is up-to-date.
-            </summary>
-            <value>
-                <see langword="true"/> if the underlying <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCache"/> 
-                is up-to-date; otherwise, <see langword="false"/>.
-            </value>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.AggregatingComposablePartCatalog"/> has been disposed of.
+            <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
+                <para>
+                    There are zero exported objects with the specified contract name in the 
+                    <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
+                </para>
+                -or-
+                <para>
+                    There are more than one exported objects with the specified contract name in the
+                    <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
+                </para>
             </exception>
-        </member>
-        <member name="P:System.ComponentModel.Composition.AggregatingComposablePartCatalog.Parts">
-            <summary>
-                Gets the part definitions of the catalog.
-            </summary>
-            <value>
-                A <see cref="T:System.Linq.IQueryable`1"/> of <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> objects of the 
-                <see cref="T:System.ComponentModel.Composition.AggregatingComposablePartCatalog"/>.
-            </value>
             <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.AggregatingComposablePartCatalog"/> has been disposed of.
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
-        </member>
-        <member name="P:System.ComponentModel.Composition.AggregatingComposablePartCatalog.Catalogs">
-            <summary>
-                Gets the underlying catalogs of the catalog.
-            </summary>
-            <value>
-                An <see cref="T:System.Collections.Generic.ICollection`1"/> of underlying <see cref="T:System.ComponentModel.Composition.ComposablePartCatalog"/> objects
-                of the <see cref="T:System.ComponentModel.Composition.AggregatingComposablePartCatalog"/>.
-            </value>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.AggregatingComposablePartCatalog"/> has been disposed of.
+            <exception cref="T:System.ComponentModel.Composition.CompositionException">
+                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> will 
+                contain a collection of errors that occurred.
             </exception>
         </member>
-        <member name="E:System.ComponentModel.Composition.AggregatingComposablePartCatalog.Changed">
-            <summary>
-            Notify when the contents of the Catalog has changed.
-            </summary>
-        </member>
-        <member name="E:System.ComponentModel.Composition.AggregatingComposablePartCatalog.Changing">
-            <summary>
-            Notify when the contents of the Catalog is about to change.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AggregatingExportProvider.#ctor(System.ComponentModel.Composition.ExportProvider[])">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExportedObjectOrDefault``1">
             <summary>
-            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.AggregatingExportProvider"/> class.
+                Returns the exported object with the contract name derived from the specified type 
+                parameter, throwing an exception if there is more than one matching exported object.
             </summary>
-            <param name="providers">The prioritized list of export providers.</param>
+            <typeparam name="T">
+                The type of the exported object to return. The contract name is also 
+                derived from this type parameter.
+            </typeparam>
+            <returns>
+                The exported <see cref="T:System.Object"/> with the contract name derived from 
+                <typeparamref name="T"/>, if found; otherwise, the default value for
+                <typeparamref name="T"/>.
+            </returns>
             <remarks>
                 <para>
-                    The <see cref="T:System.ComponentModel.Composition.AggregatingExportProvider"/> will consult the providers in the order they have been specfied when 
-                    executing <see cref="M:System.ComponentModel.Composition.ExportProvider.GetExports(System.ComponentModel.Composition.ImportDefinition)"/>. 
+                    If the exported object is not found, then this method returns the appropriate 
+                    default value for <typeparamref name="T"/>; for example, 0 (zero) for integer 
+                    types, <see langword="false"/> for Boolean types, and <see langword="null"/> 
+                    for reference types.
+                </para>
+                <para>
+                    The contract name is the result of calling 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
                 </para>
                 <para>
-                    The <see cref="T:System.ComponentModel.Composition.AggregatingExportProvider"/> does not take ownership of the specified providers. 
-                    That is, it will not try to dispose of any of them when it gets disposed.
+                    The contract name is compared using a case-sensitive, non-linguistic comparison 
+                    using <see cref="P:System.StringComparer.Ordinal"/>.
                 </para>
             </remarks>
+            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
+                The underlying exported object cannot be cast to <typeparamref name="T"/>.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
+                <para>
+                    There are more than one exported objects with the contract name derived from
+                    <typeparamref name="T"/> in the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
+                </para>
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.CompositionException">
+                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> will 
+                contain a collection of errors that occurred.
+            </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.AggregatingExportProvider.#ctor(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.ExportProvider})">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExportedObjectOrDefault``1(System.String)">
             <summary>
-            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.AggregatingExportProvider"/> class.
+                Returns the exported object with the specified contract name, throwing an exception 
+                if there is more than one matching exported object.
             </summary>
-            <param name="providers">The prioritized list of export providers. The providers are consulted in order in which they are supplied.</param>
+            <typeparam name="T">
+                The type of the exported object to return.
+            </typeparam>
+            <param name="contractName">
+                A <see cref="T:System.String"/> containing the contract name of the exported object to return,
+                or <see langword="null"/> or an empty string ("") to use the default contract name.
+            </param>
+            <returns>
+                The exported <see cref="T:System.Object"/> with the specified contract name, if found; 
+                otherwise, the default value for <typeparamref name="T"/>.
+            </returns>
             <remarks>
                 <para>
-                    The <see cref="T:System.ComponentModel.Composition.AggregatingExportProvider"/> will consult the providers in the order they have been specfied when 
-                    executing <see cref="M:System.ComponentModel.Composition.ExportProvider.GetExports(System.ComponentModel.Composition.ImportDefinition)"/>. 
+                    If the exported object is not found, then this method returns the appropriate 
+                    default value for <typeparamref name="T"/>; for example, 0 (zero) for integer 
+                    types, <see langword="false"/> for Boolean types, and <see langword="null"/> 
+                    for reference types.
                 </para>
                 <para>
-                    The <see cref="T:System.ComponentModel.Composition.AggregatingExportProvider"/> does not take ownership of the specified providers. 
-                    That is, it will not try to dispose of any of them when it gets disposed.
+                    The default contract name is the result of calling 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                </para>
+                <para>
+                    The contract name is compared using a case-sensitive, non-linguistic comparison 
+                    using <see cref="P:System.StringComparer.Ordinal"/>.
                 </para>
             </remarks>
+            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
+                The underlying exported object cannot be cast to <typeparamref name="T"/>.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.CardinalityMismatchException">
+                There are more than one exported objects with the specified contract name in the
+                <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.CompositionException">
+                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> will 
+                contain a collection of errors that occurred.
+            </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.AggregatingExportProvider.Dispose">
-            <summary>
-            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AggregatingExportProvider.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:System.ComponentModel.Composition.AggregatingExportProvider.OnExportsChanged(System.ComponentModel.Composition.ExportsChangedEventArgs)">
-            <summary>
-            Raises the <see cref="E:System.ComponentModel.Composition.AggregatingExportProvider.ExportsChanged"/> event.
-            </summary>
-            <param name="e">The <see cref="T:System.ComponentModel.Composition.ExportsChangedEventArgs"/> instance containing the event data.</param>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AggregatingExportProvider.GetExportsCore(System.ComponentModel.Composition.ImportDefinition)">
-            <summary>
-            Returns all exports that match the conditions of the specified import.
-            </summary>
-            <param name="importDefinition">The <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> that defines the conditions of the
-            <see cref="T:System.ComponentModel.Composition.Export"/> to get.</param>
-            <returns></returns>
-            <result>
-            An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/> objects that match
-            the conditions defined by <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>, if found; otherwise, an
-            empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            </result>
-            <remarks>
-            	<note type="inheritinfo">
-            The implementers should not treat the cardinality-related mismatches as errors, and are not
-            expected to throw exceptions in those cases.
-            For instance, if the import requests exactly one export and the provider has no matching exports or more than one,
-            it should return an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/>.
-            </note>
-            </remarks>
-        </member>
-        <member name="P:System.ComponentModel.Composition.AggregatingExportProvider.Providers">
-            <summary>
-            Returns the providers that the <see cref="T:System.ComponentModel.Composition.AggregatingExportProvider"/> aggregates.
-            </summary>
-            <value>The providers.</value>
-        </member>
-        <member name="E:System.ComponentModel.Composition.AggregatingExportProvider.ExportsChanged">
-            <summary>
-                Occurs when the exports in the <see cref="T:System.ComponentModel.Composition.ExportProvider"/> change.
-            </summary>
-            <remarks>
-                The <see cref="E:System.ComponentModel.Composition.AggregatingExportProvider.ExportsChanged"/> event passes an <see cref="T:System.ComponentModel.Composition.ExportsChangedEventArgs"/>
-                which provides a list of contract names for the exports that have changed. An export
-                is considered to have changed if it has been added, removed, or updated in the 
-                <see cref="T:System.ComponentModel.Composition.AggregatingExportProvider"/>.
-            </remarks>
-        </member>
-        <member name="T:System.ComponentModel.Composition.AllowNonPublicCompositionAttribute">
-            <summary>
-                Specifies that an assembly's non-public types and members can participate in composition.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AllowNonPublicCompositionAttribute.#ctor">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.AllowNonPublicCompositionAttribute"/> class.
-            </summary>
-        </member>
-        <member name="T:System.ComponentModel.Composition.ComposablePartDefinition">
-            <summary>
-                Defines the <see langword="abstract"/> base class for composable part definitions, which 
-                describe, and allow the creation of, <see cref="T:System.ComponentModel.Composition.ComposablePart"/> objects.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePartDefinition.#ctor">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> class.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePartDefinition.CreatePart">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExportedObjects``1">
             <summary>
-                Creates a new instance of a part that the definition describes.
+                Returns the exported objects with the contract name derived from the specified type 
+                parameter.
             </summary>
+            <typeparam name="T">
+                The type of the exported object to return. The contract name is also 
+                derived from this type parameter.
+            </typeparam>
             <returns>
-                The created <see cref="T:System.ComponentModel.Composition.ComposablePart"/>.
+                An <see cref="T:System.Collections.ObjectModel.Collection`1"/> containing the exported objects with the contract name 
+                derived from the specified type parameter, if found; otherwise, an empty 
+                <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
             </returns>
             <remarks>
                 <para>
-                    <note type="inheritinfo">
-                        Derived types overriding this method should return a new instance of a 
-                        <see cref="T:System.ComponentModel.Composition.ComposablePart"/> on every invoke and should never return 
-                        <see langword="null"/>.
-                    </note>
+                    The contract name is the result of calling 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
                 </para>
-            </remarks>
-        </member>
-        <member name="P:System.ComponentModel.Composition.ComposablePartDefinition.ExportDefinitions">
-            <summary>
-                Gets the export definitions that describe the exported objects provided by parts 
-                created by the definition.
-            </summary>
-            <value>
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> objects describing
-                the exported objects provided by <see cref="T:System.ComponentModel.Composition.ComposablePart"/> objects created by the 
-                <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/>.
-            </value>
-            <remarks>
-                <note type="inheritinfo">
-                    Overrides of this property should never return <see langword="null"/>.
-                    If the <see cref="T:System.ComponentModel.Composition.ComposablePart"/> objects created by the 
-                    <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> do not provide exported objects, return 
-                    an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/> instead.
-                </note>
-            </remarks>
-        </member>
-        <member name="P:System.ComponentModel.Composition.ComposablePartDefinition.ImportDefinitions">
-            <summary>
-                Gets the import definitions that describe the imports required by parts created 
-                by the definition.
-            </summary>
-            <value>
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> objects describing
-                the imports required by <see cref="T:System.ComponentModel.Composition.ComposablePart"/> objects created by the 
-                <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/>.
-            </value>
-            <remarks>
-                <note type="inheritinfo">
-                    Overriders of this property should never return <see langword="null"/>.
-                    If the <see cref="T:System.ComponentModel.Composition.ComposablePart"/> objects created by the 
-                    <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> do not have imports, return an empty 
-                    <see cref="T:System.Collections.Generic.IEnumerable`1"/> instead.
-                </note>
-            </remarks>
-        </member>
-        <member name="P:System.ComponentModel.Composition.ComposablePartDefinition.Metadata">
-            <summary>
-                Gets the metadata of the definition.
-            </summary>
-            <value>
-                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
-                <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/>. The default is an empty, read-only
-                <see cref="T:System.Collections.Generic.IDictionary`2"/>.
-            </value>
-            <remarks>
                 <para>
-                    <note type="inheritinfo">
-                        Overriders of this property should return a read-only
-                        <see cref="T:System.Collections.Generic.IDictionary`2"/> object with a case-sensitive, 
-                        non-linguistic comparer, such as <see cref="P:System.StringComparer.Ordinal"/>, 
-                        and should never return <see langword="null"/>. If the 
-                        <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> does contain metadata, 
-                        return an empty <see cref="T:System.Collections.Generic.IDictionary`2"/> instead.
-                    </note>
+                    The contract name is compared using a case-sensitive, non-linguistic comparison 
+                    using <see cref="P:System.StringComparer.Ordinal"/>.
                 </para>
             </remarks>
+            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
+                One or more of the underlying exported objects cannot be cast to 
+                <typeparamref name="T"/>.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.CompositionException">
+                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> will 
+                contain a collection of errors that occurred.
+            </exception>
         </member>
-        <member name="T:System.ComponentModel.Composition.ExportDefinition">
-            <summary>
-                Describes the contract that an <see cref="T:System.ComponentModel.Composition.Export"/> object satisfies.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ExportDefinition.#ctor">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> class.
-            </summary>
-            <remarks>
-                <note type="inheritinfo">
-                    Derived types calling this constructor must override <see cref="P:System.ComponentModel.Composition.ExportDefinition.ContractName"/>
-                    and optionally, <see cref="P:System.ComponentModel.Composition.ExportDefinition.Metadata"/>. By default, <see cref="P:System.ComponentModel.Composition.ExportDefinition.Metadata"/>
-                    returns an empty, read-only dictionary.
-                </note>
-            </remarks>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ExportDefinition.#ctor(System.String,System.Collections.Generic.IDictionary{System.String,System.Object})">
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExportedObjects``1(System.String)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> class with 
-                the specified contract name and metadata.
+                Returns the exported objects with the specified contract name.
             </summary>
+            <typeparam name="T">
+                The type of the exported object to return.
+            </typeparam>
             <param name="contractName">
-                A <see cref="T:System.String"/> containing the contract name of the 
-                <see cref="T:System.ComponentModel.Composition.ExportDefinition"/>.
-            </param>
-            <param name="metadata">
-                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
-                <see cref="T:System.ComponentModel.Composition.ExportDefinition"/>; or <see langword="null"/> to set the 
-                <see cref="P:System.ComponentModel.Composition.ExportDefinition.Metadata"/> property to an empty, read-only 
-                <see cref="T:System.Collections.Generic.IDictionary`2"/>.
+                A <see cref="T:System.String"/> containing the contract name of the exported objects to 
+                return; or <see langword="null"/> or an empty string ("") to use the default 
+                contract name.
             </param>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="contractName"/> is <see langword="null"/>.
+            <returns>
+                An <see cref="T:System.Collections.ObjectModel.Collection`1"/> containing the exported objects with the specified 
+                contract name, if found; otherwise, an empty <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
+            </returns>
+            <remarks>
+                <para>
+                    The default contract name is the result of calling 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
+                </para>
+                <para>
+                    The contract name is compared using a case-sensitive, non-linguistic comparison 
+                    using <see cref="P:System.StringComparer.Ordinal"/>.
+                </para>
+            </remarks>
+            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
+                One or more of the underlying exported objects cannot be cast to 
+                <typeparamref name="T"/>.
             </exception>
-            <exception cref="T:System.ArgumentException">
-                <paramref name="contractName"/> is an empty string ("").
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.CompositionException">
+                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> will 
+                contain a collection of errors that occurred.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportDefinition.ToString">
+        <member name="E:System.ComponentModel.Composition.Hosting.ExportProvider.ExportsChanged">
             <summary>
-                Returns a string representation of the export definition.
+                Occurs when the exports in the <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> change.
             </summary>
-            <returns>
-                A <see cref="T:System.String"/> containing the value of the <see cref="P:System.ComponentModel.Composition.ExportDefinition.ContractName"/> property.
-            </returns>
         </member>
-        <member name="P:System.ComponentModel.Composition.ExportDefinition.ContractName">
+        <member name="M:System.ComponentModel.Composition.Hosting.AdaptingExportProvider.#ctor">
             <summary>
-                Gets the contract name of the export definition.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.AdaptingExportProvider"/> class.
             </summary>
-            <value>
-                A <see cref="T:System.String"/> containing the contract name of the 
-                <see cref="T:System.ComponentModel.Composition.ExportDefinition"/>.
-            </value>
-            <exception cref="T:System.NotImplementedException">
-                The property was not overridden by a derived class.
-            </exception>
-            <remarks>
-                <note type="inheritinfo">
-                    Overriders of this property should never return <see langword="null"/> 
-                    or an empty string ("").
-                </note>
-            </remarks>
         </member>
-        <member name="P:System.ComponentModel.Composition.ExportDefinition.Metadata">
+        <member name="M:System.ComponentModel.Composition.Hosting.AdaptingExportProvider.Dispose">
             <summary>
-                Gets the metadata of the export definition.
+            Releases unmanaged and - optionally - managed resources
             </summary>
-            <value>
-                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
-                <see cref="T:System.ComponentModel.Composition.ExportDefinition"/>. The default is an empty, read-only
-                <see cref="T:System.Collections.Generic.IDictionary`2"/>.
-            </value>
-            <remarks>
-                <para>
-                    <note type="inheritinfo">
-                        Overriders of this property should return a read-only
-                        <see cref="T:System.Collections.Generic.IDictionary`2"/> object with a case-sensitive, 
-                        non-linguistic comparer, such as <see cref="P:System.StringComparer.Ordinal"/>, 
-                        and should never return <see langword="null"/>.
-                        If the <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> does not contain metadata 
-                        return an empty <see cref="T:System.Collections.Generic.IDictionary`2"/> instead.
-                    </note>
-                </para>
-            </remarks>
         </member>
-        <member name="T:System.ComponentModel.Composition.ContractBasedImportDefinition">
+        <member name="M:System.ComponentModel.Composition.Hosting.AdaptingExportProvider.Dispose(System.Boolean)">
             <summary>
-                Represents a contract name and metadata-based import 
-                required by a <see cref="T:System.ComponentModel.Composition.ComposablePart"/> object.
+            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="T:System.ComponentModel.Composition.ImportDefinition">
+        <member name="M:System.ComponentModel.Composition.Hosting.AdaptingExportProvider.OnExportsChanged(System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs)">
             <summary>
-                Represents an import required by a <see cref="T:System.ComponentModel.Composition.ComposablePart"/> object.
+            Raises the <see cref="E:System.ComponentModel.Composition.Hosting.AggregateExportProvider.ExportsChanged"/> event.
             </summary>
+            <param name="e">The <see cref="T:System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs"/> instance containing the event data.</param>
         </member>
-        <member name="M:System.ComponentModel.Composition.ImportDefinition.#ctor">
+        <member name="M:System.ComponentModel.Composition.Hosting.AdaptingExportProvider.GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> class.
+            Returns all exports that match the conditions of the specified import.
             </summary>
+            <param name="definition">The <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> that defines the conditions of the
+            <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> to get.</param>
+            <returns></returns>
+            <result>
+            An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects that match
+            the conditions defined by <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>, if found; otherwise, an
+            empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
+            </result>
             <remarks>
-                <note type="inheritinfo">
-                    Derived types calling this constructor must override the <see cref="P:System.ComponentModel.Composition.ImportDefinition.Constraint"/> 
-                    property, and optionally, the <see cref="P:System.ComponentModel.Composition.ImportDefinition.Cardinality"/>, <see cref="P:System.ComponentModel.Composition.ImportDefinition.IsPrerequisite"/> 
-                    and <see cref="P:System.ComponentModel.Composition.ImportDefinition.IsRecomposable"/> 
-                    properties.
-                </note>
+            	<note type="inheritinfo">
+            The implementers should not treat the cardinality-related mismatches as errors, and are not
+            expected to throw exceptions in those cases.
+            For instance, if the import requests exactly one export and the provider has no matching exports or more than one,
+            it should return an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>.
+            </note>
             </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.ImportDefinition.#ctor(System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.ExportDefinition,System.Boolean}},System.ComponentModel.Composition.ImportCardinality,System.Boolean,System.Boolean)">
+        <member name="P:System.ComponentModel.Composition.Hosting.AdaptingExportProvider.SourceProvider">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> class 
-                with the specified constraint, cardinality, value indicating if the import 
-                definition is recomposable and a value indicating if the import definition 
-                is a prerequisite.
+                Gets the export provider which provides the provider access to additional
+                exports.
             </summary>
-            <param name="constraint">
-                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
-                that defines the conditions that must be matched for the <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> 
-                to be satisfied by an <see cref="T:System.ComponentModel.Composition.Export"/>.
-            </param>
-            <param name="cardinality">
-                One of the <see cref="T:System.ComponentModel.Composition.ImportCardinality"/> values indicating the 
-                cardinality of the <see cref="T:System.ComponentModel.Composition.Export"/> objects required by the
-                <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>.
-            </param>
-            <param name="isRecomposable">
-                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> can be satisfied 
-                multiple times throughout the lifetime of a <see cref="T:System.ComponentModel.Composition.ComposablePart"/>, otherwise, 
-                <see langword="false"/>.
-            </param>
-            <param name="isPrerequisite">
-                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> is required to be 
-                satisfied before a <see cref="T:System.ComponentModel.Composition.ComposablePart"/> can start producing exported 
-                objects; otherwise, <see langword="false"/>.
-            </param>
+            <value>
+                The <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> which provides the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.AdaptingExportProvider"/> access to additional
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects. The default is <see langword="null"/>.
+            </value>
             <exception cref="T:System.ArgumentNullException">
-                <paramref name="constraint"/> is <see langword="null"/>.
+                <paramref name="value"/> is <see langword="null"/>.
             </exception>
-            <exception cref="T:System.ArgumentException">
-                <paramref name="cardinality"/> is not one of the <see cref="T:System.ComponentModel.Composition.ImportCardinality"/> 
-                values.
+            <exception cref="T:System.InvalidOperationException">
+                This property has already been set.
+                <para>
+                    -or-
+                </para>
+                The methods on the <see cref="T:System.ComponentModel.Composition.Hosting.AdaptingExportProvider"/> 
+                have already been accessed.
             </exception>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ImportDefinition.ToString">
-            <summary>
-                Returns a string representation of the import definition.
-            </summary>
-            <returns>
-                A <see cref="T:System.String"/> containing the value of the <see cref="P:System.ComponentModel.Composition.ImportDefinition.Constraint"/> property.
-            </returns>
-        </member>
-        <member name="P:System.ComponentModel.Composition.ImportDefinition.Cardinality">
-            <summary>
-                Gets the cardinality of the exports required by the import definition.
-            </summary>
-            <value>
-                One of the <see cref="T:System.ComponentModel.Composition.ImportCardinality"/> values indicating the 
-                cardinality of the <see cref="T:System.ComponentModel.Composition.Export"/> objects required by the
-                <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>. The default is 
-                <see cref="F:System.ComponentModel.Composition.ImportCardinality.ExactlyOne"/>
-            </value>
-        </member>
-        <member name="P:System.ComponentModel.Composition.ImportDefinition.Constraint">
-            <summary>
-                Gets an expression that defines conditions that must be matched for the import 
-                described by the import definition to be satisfied.
-            </summary>
-            <returns>
-                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
-                that defines the conditions that must be matched for the 
-                <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> to be satisfied by an <see cref="T:System.ComponentModel.Composition.Export"/>.
-            </returns>
-            <exception cref="T:System.NotImplementedException">
-                The property was not overridden by a derived class.
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.AdaptingExportProvider"/> has been disposed of.
             </exception>
             <remarks>
-                <note type="inheritinfo">
-                    Overriders of this property should never return <see langword="null"/>.
-                </note>
+                This property must be set before accessing any methods on the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.AdaptingExportProvider"/>.
             </remarks>
         </member>
-        <member name="P:System.ComponentModel.Composition.ImportDefinition.IsPrerequisite">
+        <member name="E:System.ComponentModel.Composition.Hosting.AdaptingExportProvider.ExportsChanged">
             <summary>
-                Gets a value indicating whether the import definition is required to be 
-                satisfied before a part can start producing exported objects.
+                Occurs when the exports in the <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> change.
             </summary>
-            <value>
-                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> is required to be 
-                satisfied before a <see cref="T:System.ComponentModel.Composition.ComposablePart"/> can start producing exported 
-                objects; otherwise, <see langword="false"/>. The default is <see langword="true"/>.
-            </value>
+            <remarks>
+                The <see cref="E:System.ComponentModel.Composition.Hosting.AdaptingExportProvider.ExportsChanged"/> event passes an <see cref="T:System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs"/>
+                which provides a list of contract names for the exports that have changed. An export
+                is considered to have changed if it has been added, removed, or updated in the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.AdaptingExportProvider"/>.
+            </remarks>
         </member>
-        <member name="P:System.ComponentModel.Composition.ImportDefinition.IsRecomposable">
+        <member name="T:System.ComponentModel.Composition.Hosting.AggregateCatalog">
             <summary>
-                Gets a value indicating whether the import definition can be satisfied multiple times.
+                A mutable collection of ComposablePartCatalogs.  The events are called back using the
+                synchronization context created when the instance is constructed.
             </summary>
-            <value>
-                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> can be satisfied 
-                multiple times throughout the lifetime of a <see cref="T:System.ComponentModel.Composition.ComposablePart"/>, otherwise, 
-                <see langword="false"/>. The default is <see langword="false"/>.
-            </value>
+            <remarks>
+                This type is thread safe.
+            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.ContractBasedImportDefinition.#ctor">
+        <member name="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ContractBasedImportDefinition"/> class.
+                Defines the <see langword="abstract"/> base class for composable part catalogs, which produce
+                and return <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> objects.
             </summary>
             <remarks>
-                <note type="inheritinfo">
-                    Derived types calling this constructor must override the <see cref="P:System.ComponentModel.Composition.ContractBasedImportDefinition.ContractName"/> 
-                    property, and optionally, the <see cref="P:System.ComponentModel.Composition.ContractBasedImportDefinition.RequiredMetadata"/>, 
-                    <see cref="P:System.ComponentModel.Composition.ImportDefinition.Cardinality"/>, <see cref="P:System.ComponentModel.Composition.ImportDefinition.IsPrerequisite"/> 
-                    and <see cref="P:System.ComponentModel.Composition.ImportDefinition.IsRecomposable"/> properties.
-                </note>
+                This type is thread safe.
             </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.ContractBasedImportDefinition.#ctor(System.String,System.ComponentModel.Composition.ImportCardinality,System.Boolean,System.Boolean)">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePartCatalog.#ctor">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ContractBasedImportDefinition"/> class 
-                with the specified contract name, cardinality, value indicating if the import 
-                definition is recomposable and a value indicating if the import definition 
-                is a prerequisite.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/> class.
             </summary>
-            <param name="contractName">
-                A <see cref="T:System.String"/> containing the contract name of the 
-                <see cref="T:System.ComponentModel.Composition.Export"/> required by the <see cref="T:System.ComponentModel.Composition.ContractBasedImportDefinition"/>.
-            </param>
-            <param name="cardinality">
-                One of the <see cref="T:System.ComponentModel.Composition.ImportCardinality"/> values indicating the 
-                cardinality of the <see cref="T:System.ComponentModel.Composition.Export"/> objects required by the
-                <see cref="T:System.ComponentModel.Composition.ContractBasedImportDefinition"/>.
-            </param>
-            <param name="isRecomposable">
-                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.ContractBasedImportDefinition"/> can be satisfied 
-                multiple times throughout the lifetime of a <see cref="T:System.ComponentModel.Composition.ComposablePart"/>, otherwise, 
-                <see langword="false"/>.
-            </param>
-            <param name="isPrerequisite">
-                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.ContractBasedImportDefinition"/> is required to be 
-                satisfied before a <see cref="T:System.ComponentModel.Composition.ComposablePart"/> can start producing exported 
-                objects; otherwise, <see langword="false"/>.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="contractName"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-                <paramref name="contractName"/> is an empty string ("").
-                <para>
-                    -or-
-                </para>
-                <paramref name="cardinality"/> is not one of the <see cref="T:System.ComponentModel.Composition.ImportCardinality"/> 
-                values.
-            </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ContractBasedImportDefinition.#ctor(System.String,System.Collections.Generic.IEnumerable{System.String},System.ComponentModel.Composition.ImportCardinality,System.Boolean,System.Boolean)">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePartCatalog.GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ContractBasedImportDefinition"/> class 
-                with the specified contract name, required metadataq, cardinality, value indicating 
-                if the import definition is recomposable and a value indicating if the import definition 
-                is a prerequisite.
+                Returns the export definitions that match the constraint defined by the specified definition.
             </summary>
-            <param name="contractName">
-                A <see cref="T:System.String"/> containing the contract name of the 
-                <see cref="T:System.ComponentModel.Composition.Export"/> required by the <see cref="T:System.ComponentModel.Composition.ContractBasedImportDefinition"/>.
-            </param>
-            <param name="requiredMetadata">
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.String"/> objects containing
-                the metadata names of the <see cref="T:System.ComponentModel.Composition.Export"/> required by the 
-                <see cref="T:System.ComponentModel.Composition.ContractBasedImportDefinition"/>; or <see langword="null"/> to
-                set the <see cref="P:System.ComponentModel.Composition.ContractBasedImportDefinition.RequiredMetadata"/> property to an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            </param>
-            <param name="cardinality">
-                One of the <see cref="T:System.ComponentModel.Composition.ImportCardinality"/> values indicating the 
-                cardinality of the <see cref="T:System.ComponentModel.Composition.Export"/> objects required by the
-                <see cref="T:System.ComponentModel.Composition.ContractBasedImportDefinition"/>.
-            </param>
-            <param name="isRecomposable">
-                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.ContractBasedImportDefinition"/> can be satisfied 
-                multiple times throughout the lifetime of a <see cref="T:System.ComponentModel.Composition.ComposablePart"/>, otherwise, 
-                <see langword="false"/>.
-            </param>
-            <param name="isPrerequisite">
-                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.ContractBasedImportDefinition"/> is required to be 
-                satisfied before a <see cref="T:System.ComponentModel.Composition.ComposablePart"/> can start producing exported 
-                objects; otherwise, <see langword="false"/>.
+            <param name="definition">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> that defines the conditions of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> objects to return.
             </param>
+            <returns>
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.TempTuple`2"/> containing the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> objects and their associated 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> for objects that match the constraint defined 
+                by <paramref name="definition"/>.
+            </returns>
             <exception cref="T:System.ArgumentNullException">
-                <paramref name="contractName"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-                <paramref name="contractName"/> is an empty string ("").
-                <para>
-                    -or-
-                </para>
-                <paramref name="requiredMetadata"/> contains an element that is <see langword="null"/>.
-                <para>
-                    -or-
-                </para>
-                <paramref name="cardinality"/> is not one of the <see cref="T:System.ComponentModel.Composition.ImportCardinality"/> 
-                values.
+                <paramref name="definition"/> is <see langword="null"/>.
             </exception>
-        </member>
-        <member name="P:System.ComponentModel.Composition.ContractBasedImportDefinition.ContractName">
-            <summary>
-                Gets the contract name of the export required by the import definition.
-            </summary>
-            <value>
-                A <see cref="T:System.String"/> containing the contract name of the 
-                <see cref="T:System.ComponentModel.Composition.Export"/> required by the <see cref="T:System.ComponentModel.Composition.ContractBasedImportDefinition"/>.
-            </value>
-            <exception cref="T:System.NotImplementedException">
-                The property was not overridden by a derived class.
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/> has been disposed of.
             </exception>
             <remarks>
                 <note type="inheritinfo">
-                    Overriders of this property should never return <see langword="null"/>
-                    or an empty string ("").
+                    Overriders of this property should never return <see langword="null"/>, if no 
+                    <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> match the conditions defined by 
+                    <paramref name="definition"/>, return an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
                 </note>
             </remarks>
         </member>
-        <member name="P:System.ComponentModel.Composition.ContractBasedImportDefinition.RequiredMetadata">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePartCatalog.Dispose">
             <summary>
-                Gets the metadata names of the export required by the import definition.
+                Releases the unmanaged resources used by the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/> and 
+                optionally releases the managed resources.
+            </summary>
+            <param name="disposing">
+                <see langword="true"/> to release both managed and unmanaged resources; 
+                <see langword="false"/> to release only unmanaged resources.
+            </param>
+        </member>
+        <member name="P:System.ComponentModel.Composition.Primitives.ComposablePartCatalog.Parts">
+            <summary>
+                Gets the part definitions of the catalog.
             </summary>
             <value>
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.String"/> objects containing
-                the metadata names of the <see cref="T:System.ComponentModel.Composition.Export"/> required by the 
-                <see cref="T:System.ComponentModel.Composition.ContractBasedImportDefinition"/>. The default is an empty 
-                <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
+                A <see cref="T:System.Linq.IQueryable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> objects of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/>.
             </value>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/> has been disposed of.
+            </exception>
             <remarks>
                 <note type="inheritinfo">
-                    Overriders of this property should never return <see langword="null"/>
-                    or return an <see cref="T:System.Collections.Generic.IEnumerable`1"/> that contains an element that is
-                    <see langword="null"/>. If the definition does not contain required metadata, 
-                    return an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/> instead.
+                    Overriders of this property should never return <see langword="null"/>.
                 </note>
             </remarks>
         </member>
-        <member name="P:System.ComponentModel.Composition.ContractBasedImportDefinition.Constraint">
-            <summary>
-                Gets an expression that defines conditions that must be matched for the import 
-                described by the import definition to be satisfied.
-            </summary>
-            <returns>
-                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
-                that defines the conditions that must be matched for the 
-                <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> to be satisfied by an <see cref="T:System.ComponentModel.Composition.Export"/>.
-            </returns>
-            <remarks>
-                <para>
-                    This property returns an expression that defines conditions based on the 
-                    <see cref="P:System.ComponentModel.Composition.ContractBasedImportDefinition.ContractName"/> and <see cref="P:System.ComponentModel.Composition.ContractBasedImportDefinition.RequiredMetadata"/> properties.
-                </para>
-            </remarks>
-        </member>
-        <member name="T:System.ComponentModel.Composition.Caching.AttributedModel.AttributedComposablePartCatalogSite">
-            <summary>
-            This cached catalog site is used by all catalogs that containe AttributedComposablePartDefinitions
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCache.GetCacheCatalog(System.ComponentModel.Composition.Caching.ICachedComposablePartCatalogSite)">
+        <member name="T:System.ComponentModel.Composition.Primitives.INotifyComposablePartCatalogChanged">
             <summary>
-            Returns the catalog that represents the cache. Note, that this is not the originally cached catalog, bur rather a representation
-            of the cached part definitions.
+                Notifications when a ComposablePartCatalog changes.
             </summary>
-            <param name="catalogSite"></param>
-            <returns></returns>
         </member>
-        <member name="P:System.ComponentModel.Composition.Caching.ComposablePartCatalogCache.Metadata">
+        <member name="M:System.ComponentModel.Composition.Hosting.AggregateCatalog.#ctor">
             <summary>
-            Catalog metadata
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.AggregateCatalog"/> class.
             </summary>
         </member>
-        <member name="P:System.ComponentModel.Composition.Caching.ComposablePartCatalogCache.Reader">
+        <member name="M:System.ComponentModel.Composition.Hosting.AggregateCatalog.#ctor(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Primitives.ComposablePartCatalog})">
             <summary>
-            The reader that has provided the cache
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.AggregateCatalog"/> class
+                with the specified catalogs.
             </summary>
+            <param name="catalogs">
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/> objects to add
+                to the <see cref="T:System.ComponentModel.Composition.Hosting.AggregateCatalog"/>; or <see langword="null"/> to 
+                create an <see cref="T:System.ComponentModel.Composition.Hosting.AggregateCatalog"/> that is empty.
+            </param>
+            <exception cref="T:System.ArgumentException">
+                <paramref name="catalogs"/> contains an element that is <see langword="null"/>.
+            </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheReader.ReadCacheCore(System.Object)">
+        <member name="M:System.ComponentModel.Composition.Hosting.AggregateCatalog.GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)">
             <summary>
-            Reads the catalog cache given the cache token.
+                Returns the export definitions that match the constraint defined by the specified definition.
             </summary>
-            <param name="cacheToken">The cache token.</param>
-            <returns>The catalog cache corresponding to the specified cache token.</returns>
+            <param name="definition">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> that defines the conditions of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> objects to return.
+            </param>
+            <returns>
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.TempTuple`2"/> containing the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> objects and their associated 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> for objects that match the constraint defined 
+                by <paramref name="definition"/>.
+            </returns>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="definition"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.AggregateCatalog"/> has been disposed of.
+            </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheReader.ReadCatalog(System.Object)">
+        <member name="P:System.ComponentModel.Composition.Hosting.AggregateCatalog.Parts">
             <summary>
-            Reads the catalog from the cache given the specified cache token. This methos trows if thew catalog with the given
-            token doesn't exist.
+                Gets the part definitions of the catalog.
             </summary>
-            <param name="cacheToken">The cache token.</param>
-            <returns>The catalog corresponding to the specified cache token.</returns>
+            <value>
+                A <see cref="T:System.Linq.IQueryable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> objects of the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.AggregateCatalog"/>.
+            </value>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.AggregateCatalog"/> has been disposed of.
+            </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheReader.ReadRootCatalog">
+        <member name="P:System.ComponentModel.Composition.Hosting.AggregateCatalog.Catalogs">
             <summary>
-            Reads the root catalog from the cache
+                Gets the underlying catalogs of the catalog.
             </summary>
-            <returns>The root catalog.</returns>
+            <value>
+                An <see cref="T:System.Collections.Generic.ICollection`1"/> of underlying <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/> objects
+                of the <see cref="T:System.ComponentModel.Composition.Hosting.AggregateCatalog"/>.
+            </value>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.AggregateCatalog"/> has been disposed of.
+            </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheReader.Dispose">
+        <member name="E:System.ComponentModel.Composition.Hosting.AggregateCatalog.Changed">
             <summary>
-            Releases all the resources allocated by the <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheReader"/> and completes the cache writing.
+            Notify when the contents of the Catalog has changed.
             </summary>
         </member>
-        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheReader.Dispose(System.Boolean)">
+        <member name="M:System.ComponentModel.Composition.Hosting.AggregateExportProvider.#ctor(System.ComponentModel.Composition.Hosting.ExportProvider[])">
             <summary>
-            Releases all the resources allocated by the <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter"/> and completes the cache writing.
+            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.AggregateExportProvider"/> class.
             </summary>
-            <param name="disposing">Is called from Dispose() if set to <c>true</c>, otherwise is called from the finalizer.</param>
+            <param name="providers">The prioritized list of export providers.</param>
+            <remarks>
+                <para>
+                    The <see cref="T:System.ComponentModel.Composition.Hosting.AggregateExportProvider"/> will consult the providers in the order they have been specfied when 
+                    executing <see cref="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)"/>. 
+                </para>
+                <para>
+                    The <see cref="T:System.ComponentModel.Composition.Hosting.AggregateExportProvider"/> does not take ownership of the specified providers. 
+                    That is, it will not try to dispose of any of them when it gets disposed.
+                </para>
+            </remarks>
         </member>
-        <member name="P:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheReader.RootCacheToken">
+        <member name="M:System.ComponentModel.Composition.Hosting.AggregateExportProvider.#ctor(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Hosting.ExportProvider})">
             <summary>
-            Returns the cache token corresponding to the root catalog in the cache.
+            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.AggregateExportProvider"/> class.
             </summary>
+            <param name="providers">The prioritized list of export providers. The providers are consulted in order in which they are supplied.</param>
+            <remarks>
+                <para>
+                    The <see cref="T:System.ComponentModel.Composition.Hosting.AggregateExportProvider"/> will consult the providers in the order they have been specfied when 
+                    executing <see cref="M:System.ComponentModel.Composition.Hosting.ExportProvider.GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)"/>. 
+                </para>
+                <para>
+                    The <see cref="T:System.ComponentModel.Composition.Hosting.AggregateExportProvider"/> does not take ownership of the specified providers. 
+                    That is, it will not try to dispose of any of them when it gets disposed.
+                </para>
+            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter.WriteCache(System.Type,System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.ComposablePartDefinition},System.Collections.Generic.IDictionary{System.String,System.Object},System.ComponentModel.Composition.Caching.ICachedComposablePartCatalogSite)">
+        <member name="M:System.ComponentModel.Composition.Hosting.AggregateExportProvider.Dispose">
             <summary>
-            Writes part definitions and catalog metadata into the cache.
+            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
             </summary>
-            <param name="catalogType">Catalog type.</param>
-            <param name="partDefinitions">Parts definitions.</param>
-            <param name="catalogMetadata">Catalog Metadata.</param>
-            <param name="catalogSite">Catalog Site</param>
-            <returns>Catalog cache token. This value can be cached and used to locate this cache wen reading from the cache.</returns>
         </member>
-        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter.WriteCacheCore(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.ComposablePartDefinition},System.Collections.Generic.IDictionary{System.String,System.Object},System.ComponentModel.Composition.Caching.ICachedComposablePartCatalogSite)">
+        <member name="M:System.ComponentModel.Composition.Hosting.AggregateExportProvider.Dispose(System.Boolean)">
             <summary>
-            Writes part definitions and catalog metadata into the cache.
+            Releases unmanaged and - optionally - managed resources
             </summary>
-            <param name="partDefinitions">Parts definitions.</param>
-            <param name="catalogMetadata">Catalog Metadata.</param>
-            <param name="catalogSite">Catalog Site</param>
-            <returns>Catalog cache token. This value can be cached and used to locate this cache wen reading from the cache.</returns>
+            <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:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter.WriteRootCacheToken(System.Object)">
+        <member name="M:System.ComponentModel.Composition.Hosting.AggregateExportProvider.OnExportsChanged(System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs)">
             <summary>
-            Sets "root" catalog of the cache - that is one that the corresponding <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCache"/> will open first when the 
-            appropriate storage is read. This method may be called multiple times; the last set value is expected to be written to the cache when the
-            <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter"/> is disposed.
+            Raises the <see cref="E:System.ComponentModel.Composition.Hosting.AggregateExportProvider.ExportsChanged"/> event.
             </summary>
-            <param name="catalogToken">Value returned by a call to WriteCache.</param>
+            <param name="e">The <see cref="T:System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs"/> instance containing the event data.</param>
         </member>
-        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter.Dispose">
+        <member name="M:System.ComponentModel.Composition.Hosting.AggregateExportProvider.GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition)">
             <summary>
-            Releases all the resources allocated by the <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter"/> and completes the cache writing.
+            Returns all exports that match the conditions of the specified import.
             </summary>
+            <param name="definition">The <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> that defines the conditions of the
+            <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> to get.</param>
+            <returns></returns>
+            <result>
+            An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects that match
+            the conditions defined by <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>, if found; otherwise, an
+            empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
+            </result>
+            <remarks>
+            	<note type="inheritinfo">
+            The implementers should not treat the cardinality-related mismatches as errors, and are not
+            expected to throw exceptions in those cases.
+            For instance, if the import requests exactly one export and the provider has no matching exports or more than one,
+            it should return an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>.
+            </note>
+            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter.Dispose(System.Boolean)">
+        <member name="P:System.ComponentModel.Composition.Hosting.AggregateExportProvider.Providers">
             <summary>
-            Releases all the resources allocated by the <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter"/> and completes the cache writing.
+                Gets the export providers which the aggregate export provider aggregates.
             </summary>
-            <param name="disposing">Is called from Dispose() if set to <c>true</c>, otherwise is called from the finalizer.</param>
+            <value>
+                A <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1"/> of <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> objects
+                which the <see cref="T:System.ComponentModel.Composition.Hosting.AggregateExportProvider"/> aggregates.
+            </value>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.AggregateExportProvider"/> has been disposed of.
+            </exception>
         </member>
-        <member name="T:System.ComponentModel.Composition.Caching.EmptyCachedComposablePartCatalogSite">
+        <member name="E:System.ComponentModel.Composition.Hosting.AggregateExportProvider.ExportsChanged">
             <summary>
-            This is used by catalogs that don't actually have any parts, but only metadata.
-            We use this type when "null" is passed for the site.
+                Occurs when the exports in the <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> change.
             </summary>
+            <remarks>
+                The <see cref="E:System.ComponentModel.Composition.Hosting.AggregateExportProvider.ExportsChanged"/> event passes an <see cref="T:System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs"/>
+                which provides a list of contract names for the exports that have changed. An export
+                is considered to have changed if it has been added, removed, or updated in the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.AggregateExportProvider"/>.
+            </remarks>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.AggregateExportProvider"/> has been disposed of.
+            </exception>
         </member>
-        <member name="T:System.ComponentModel.Composition.AttributedAssemblyPartCatalog">
+        <member name="T:System.ComponentModel.Composition.Hosting.AssemblyCatalog">
             <summary>
                 An immutable ComposablePartCatalog created from a managed code assembly.
             </summary>
@@ -2648,14 +3263,14 @@
                 This type is thread safe.
             </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.AttributedAssemblyPartCatalog.#ctor(System.String)">
+        <member name="M:System.ComponentModel.Composition.Hosting.AssemblyCatalog.#ctor(System.String)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.AttributedAssemblyPartCatalog"/> class 
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.AssemblyCatalog"/> class 
                 with the specified code base.
             </summary>
             <param name="codeBase">
                 A <see cref="T:System.String"/> containing the code base of the assembly containing the
-                attributed <see cref="T:System.Type"/> objects to add to the <see cref="T:System.ComponentModel.Composition.AttributedAssemblyPartCatalog"/>.
+                attributed <see cref="T:System.Type"/> objects to add to the <see cref="T:System.ComponentModel.Composition.Hosting.AssemblyCatalog"/>.
             </param>
             <exception cref="T:System.ArgumentNullException">
                 <paramref name="codeBase"/> is <see langword="null"/>.
@@ -2690,14 +3305,14 @@
                 The assembly referenced by <paramref langword="codeBase"/> is loaded into the Load context.
             </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.AttributedAssemblyPartCatalog.#ctor(System.Reflection.Assembly)">
+        <member name="M:System.ComponentModel.Composition.Hosting.AssemblyCatalog.#ctor(System.Reflection.Assembly)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.AttributedAssemblyPartCatalog"/> class 
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.AssemblyCatalog"/> class 
                 with the specified assembly.
             </summary>
             <param name="assembly">
-                The <see cref="T:System.Reflection.Assembly"/> containing the attributed <see cref="T:System.Type"/> objects to 
-                add to the <see cref="T:System.ComponentModel.Composition.AttributedAssemblyPartCatalog"/>.
+                The <see cref="P:System.ComponentModel.Composition.Hosting.AssemblyCatalog.Assembly"/> containing the attributed <see cref="T:System.Type"/> objects to 
+                add to the <see cref="T:System.ComponentModel.Composition.Hosting.AssemblyCatalog"/>.
             </param>
             <exception cref="T:System.ArgumentException">
                 <paramref name="assembly"/> is <see langword="null"/>.
@@ -2707,227 +3322,106 @@
                 <paramref name="assembly"/> was loaded in the reflection-only context.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.AttributedAssemblyPartCatalog.#ctor(System.ComponentModel.Composition.Caching.ComposablePartCatalogCache)">
+        <member name="M:System.ComponentModel.Composition.Hosting.AssemblyCatalog.GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.AttributedAssemblyPartCatalog"/> class 
-                with the specified cache.
+                Returns the export definitions that match the constraint defined by the specified definition.
             </summary>
-            <param name="cache">
-                The <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCache"/> to read the catalog from.
+            <param name="definition">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> that defines the conditions of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> objects to return.
             </param>
+            <returns>
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.TempTuple`2"/> containing the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> objects and their associated 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> for objects that match the constraint defined 
+                by <paramref name="definition"/>.
+            </returns>
             <exception cref="T:System.ArgumentNullException">
-                <paramref name="cache"/> is <see langword="null"/>.
+                <paramref name="definition"/> is <see langword="null"/>.
             </exception>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AttributedAssemblyPartCatalog.CacheCatalog(System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter)">
-            <summary>
-               Caches the catalog using the specified cache writer
-            </summary>
-            <param name="writer">
-               The <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter"/> to use to cache the 
-               <see cref="T:System.ComponentModel.Composition.AttributedAssemblyPartCatalog"/>.
-            </param>
-            <returns></returns>
             <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.AttributedAssemblyPartCatalog"/> has been disposed of.
+                The <see cref="T:System.ComponentModel.Composition.Hosting.AssemblyCatalog"/> has been disposed of.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.AttributedAssemblyPartCatalog.GetExports(System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.ExportDefinition,System.Boolean}})">
+        <member name="M:System.ComponentModel.Composition.Hosting.AssemblyCatalog.ToString">
             <summary>
-                Returns the export definitions that match the conditions defined by the specified constraint.
+                Returns a string representation of the assembly catalog.
             </summary>
-            <param name="constraint">
-                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
-                that defines the conditions of the <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> objects to return.
-            </param>
             <returns>
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.Tuple`2"/> containing the 
-                <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> objects and their associated 
-                <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> objects that matche the conditions defined 
-                by <paramref name="constraint"/>.
+                A <see cref="T:System.String"/> containing the string representation of the <see cref="T:System.ComponentModel.Composition.Hosting.AssemblyCatalog"/>.
             </returns>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="constraint"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.AttributedTypesPartCatalog"/> has been disposed of.
-            </exception>
         </member>
-        <member name="P:System.ComponentModel.Composition.AttributedAssemblyPartCatalog.IsCacheUpToDate">
+        <member name="P:System.ComponentModel.Composition.Hosting.AssemblyCatalog.Parts">
             <summary>
-                Gets a value indicating whether the underlying cache is up-to-date.
+                Gets the part definitions of the assembly catalog.
             </summary>
             <value>
-                <see langword="true"/> if the underlying <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCache"/> 
-                is up-to-date; otherwise, <see langword="false"/>.
+                A <see cref="T:System.Linq.IQueryable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> objects of the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.AssemblyCatalog"/>.
             </value>
             <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.AttributedAssemblyPartCatalog"/> has been disposed of.
+                The <see cref="T:System.ComponentModel.Composition.Hosting.AssemblyCatalog"/> has been disposed of.
             </exception>
         </member>
-        <member name="P:System.ComponentModel.Composition.AttributedAssemblyPartCatalog.Parts">
+        <member name="P:System.ComponentModel.Composition.Hosting.AssemblyCatalog.Assembly">
             <summary>
-                Gets the part definitions of the catalog.
+                Gets the assembly containing the attributed types contained within the assembly
+                catalog.
             </summary>
             <value>
-                A <see cref="T:System.Linq.IQueryable`1"/> of <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> objects of the 
-                <see cref="T:System.ComponentModel.Composition.AttributedAssemblyPartCatalog"/>.
+                The <see cref="P:System.ComponentModel.Composition.Hosting.AssemblyCatalog.Assembly"/> containing the attributed <see cref="T:System.Type"/> objects
+                contained within the <see cref="T:System.ComponentModel.Composition.Hosting.AssemblyCatalog"/>.
             </value>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.AttributedAssemblyPartCatalog"/> has been disposed of.
-            </exception>
-        </member>
-        <member name="T:System.ComponentModel.Composition.AttributedTypesPartCatalog">
-            <summary>
-                An immutable ComposablePartCatalog created from a type array or a list of managed types.  This class is threadsafe.
-                It is Disposable.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AttributedTypesPartCatalog.#ctor(System.Type[])">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.AttributedTypesPartCatalog"/> class 
-                with the specified types.
-            </summary>
-            <param name="types">
-                An <see cref="T:System.Array"/> of attributed <see cref="T:System.Type"/> objects to add to the 
-                <see cref="T:System.ComponentModel.Composition.AttributedTypesPartCatalog"/>.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="types"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-                <paramref name="types"/> contains an element that is <see langword="null"/>.
-                <para>
-                    -or-
-                </para>
-                <paramref name="types"/> contains an element that was loaded in the Reflection-only context.
-            </exception>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AttributedTypesPartCatalog.#ctor(System.Collections.Generic.IEnumerable{System.Type})">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.AttributedTypesPartCatalog"/> class
-                with the specified types.
-            </summary>
-            <param name="types">
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of attributed <see cref="T:System.Type"/> objects to add 
-                to the <see cref="T:System.ComponentModel.Composition.AttributedTypesPartCatalog"/>.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="types"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-                <paramref name="types"/> contains an element that is <see langword="null"/>.
-                <para>
-                    -or-
-                </para>
-                <paramref name="types"/> contains an element that was loaded in the reflection-only context.
-            </exception>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AttributedTypesPartCatalog.#ctor(System.ComponentModel.Composition.Caching.ComposablePartCatalogCache)">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.AttributedTypesPartCatalog"/> class 
-                with the specified cache.
-            </summary>
-            <param name="cache">
-                <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCache"/> to read the <see cref="T:System.ComponentModel.Composition.AttributedTypesPartCatalog"/> from.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="cache"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AttributedTypesPartCatalog.CacheCatalog(System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter)">
-            <summary>
-               Caches the catalog using the specified cache writer
-            </summary>
-            <param name="writer">
-               The <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter"/> to use to cache the 
-               <see cref="T:System.ComponentModel.Composition.AttributedTypesPartCatalog"/>.
-            </param>
-            <returns></returns>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.AttributedTypesPartCatalog"/> has been disposed of.
-            </exception>
-        </member>
-        <member name="M:System.ComponentModel.Composition.AttributedTypesPartCatalog.GetExports(System.Linq.Expressions.Expression{System.Func{System.ComponentModel.Composition.ExportDefinition,System.Boolean}})">
-            <summary>
-                Returns the export definitions that match the conditions defined by the specified constraint.
-            </summary>
-            <param name="constraint">
-                A <see cref="T:System.Linq.Expressions.Expression`1"/> containing a <see cref="T:System.Func`2"/> 
-                that defines the conditions of the <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> objects to return.
-            </param>
-            <returns>
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.Tuple`2"/> containing the 
-                <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> objects and their associated 
-                <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> objects that matche the conditions defined 
-                by <paramref name="constraint"/>.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="constraint"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.AttributedTypesPartCatalog"/> has been disposed of.
-            </exception>
         </member>
-        <member name="P:System.ComponentModel.Composition.AttributedTypesPartCatalog.IsCacheUpToDate">
+        <member name="P:System.ComponentModel.Composition.Hosting.AssemblyCatalog.System#ComponentModel#Composition#Primitives#ICompositionElement#DisplayName">
             <summary>
-                Gets a value indicating whether the underlying cache is up-to-date.
+                Gets the display name of the assembly catalog.
             </summary>
             <value>
-                <see langword="true"/> if the underlying <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCache"/> 
-                is up-to-date; otherwise, <see langword="false"/>.
+                A <see cref="T:System.String"/> containing a human-readable display name of the <see cref="T:System.ComponentModel.Composition.Hosting.AssemblyCatalog"/>.
             </value>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.AttributedTypesPartCatalog"/> has been disposed of.
-            </exception>
         </member>
-        <member name="P:System.ComponentModel.Composition.AttributedTypesPartCatalog.Parts">
+        <member name="P:System.ComponentModel.Composition.Hosting.AssemblyCatalog.System#ComponentModel#Composition#Primitives#ICompositionElement#Origin">
             <summary>
-                Gets the part definitions of the catalog.
+                Gets the composition element from which the assembly catalog originated.
             </summary>
             <value>
-                A <see cref="T:System.Linq.IQueryable`1"/> of <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> objects of the 
-                <see cref="T:System.ComponentModel.Composition.AttributedTypesPartCatalog"/>.
+                This property always returns <see langword="null"/>.
             </value>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.AttributedTypesPartCatalog"/> has been disposed of.
-            </exception>
         </member>
-        <member name="T:System.ComponentModel.Composition.ComposablePartCatalogCollection">
+        <member name="M:System.ComponentModel.Composition.Hosting.CatalogExportProvider.#ctor(System.ComponentModel.Composition.Primitives.ComposablePartCatalog)">
             <summary>
-                This class implements a threadsafe ICollection{T} of ComposablePartCatalog.
-                It is exposed as an ICollection(ComposablePartCatalog)
-                It is threadsafe, notifications are not marshalled using a SynchronizationContext.
-                It is Disposable.
+            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.CatalogExportProvider"/> class.
             </summary>
+            <param name="catalog">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/> that the <see cref="T:System.ComponentModel.Composition.Hosting.CatalogExportProvider"/>
+                uses to produce <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="catalog"/> is <see langword="null"/>.
+            </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePartCatalogExportProvider.#ctor(System.ComponentModel.Composition.ComposablePartCatalog)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ComposablePartCatalogExportProvider"/> class.
-            </summary>
-            <param name="catalog">The catalog.</param>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePartCatalogExportProvider.Dispose">
+        <member name="M:System.ComponentModel.Composition.Hosting.CatalogExportProvider.Dispose">
             <summary>
             Releases unmanaged and - optionally - managed resources
             </summary>
         </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePartCatalogExportProvider.Dispose(System.Boolean)">
+        <member name="M:System.ComponentModel.Composition.Hosting.CatalogExportProvider.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:System.ComponentModel.Composition.ComposablePartCatalogExportProvider.GetExportsCore(System.ComponentModel.Composition.ImportDefinition)">
+        <member name="M:System.ComponentModel.Composition.Hosting.CatalogExportProvider.GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition)">
             <summary>
             Returns all exports that match the conditions of the specified import.
             </summary>
-            <param name="importDefinition">The <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> that defines the conditions of the
-            <see cref="T:System.ComponentModel.Composition.Export"/> to get.</param>
+            <param name="definition">The <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> that defines the conditions of the
+            <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> to get.</param>
             <returns></returns>
             <result>
-            An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/> objects that match
-            the conditions defined by <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>, if found; otherwise, an
+            An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects that match
+            the conditions defined by <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>, if found; otherwise, an
             empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
             </result>
             <remarks>
@@ -2935,842 +3429,738 @@
             The implementers should not treat the cardinality-related mismatches as errors, and are not
             expected to throw exceptions in those cases.
             For instance, if the import requests exactly one export and the provider has no matching exports or more than one,
-            it should return an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/>.
+            it should return an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>.
             </note>
             </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePartCatalogExportProvider.OnExportsChanged(System.ComponentModel.Composition.ExportsChangedEventArgs)">
-            <summary>
-            Raises the <see cref="E:System.ComponentModel.Composition.AggregatingExportProvider.ExportsChanged"/> event.
-            </summary>
-            <param name="e">The <see cref="T:System.ComponentModel.Composition.ExportsChangedEventArgs"/> instance containing the event data.</param>
-        </member>
-        <member name="P:System.ComponentModel.Composition.ComposablePartCatalogExportProvider.SourceProvider">
-            <summary>
-            Gets or sets the source provider.
-            </summary>
-            <value>The source provider.</value>
-        </member>
-        <member name="E:System.ComponentModel.Composition.ComposablePartCatalogExportProvider.ExportsChanged">
-            <summary>
-                Occurs when the exports in the <see cref="T:System.ComponentModel.Composition.ExportProvider"/> change.
-            </summary>
-            <remarks>
-                The <see cref="E:System.ComponentModel.Composition.ComposablePartCatalogExportProvider.ExportsChanged"/> event passes an <see cref="T:System.ComponentModel.Composition.ExportsChangedEventArgs"/>
-                which provides a list of contract names for the exports that have changed. An export
-                is considered to have changed if it has been added, removed, or updated in the 
-                <see cref="T:System.ComponentModel.Composition.ComposablePartCatalogExportProvider"/>.
-            </remarks>
-        </member>
-        <member name="T:System.ComponentModel.Composition.CardinalityMismatchException">
-            <summary>
-                The exception that is thrown when the cardinality of a <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>
-                does not match the cardinality of the <see cref="T:System.ComponentModel.Composition.Export"/> objects available in an 
-                <see cref="T:System.ComponentModel.Composition.ExportProvider"/>.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.CardinalityMismatchException.#ctor">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/> class.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.CardinalityMismatchException.#ctor(System.String)">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/> class 
-                with the specified error message.
-            </summary>
-            <param name="message">
-                A <see cref="T:System.String"/> containing a message that describes the 
-                <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/>; or <see langword="null"/> to set
-                the <see cref="P:System.Exception.Message"/> property to its default value.
-            </param>
-        </member>
-        <member name="M:System.ComponentModel.Composition.CardinalityMismatchException.#ctor(System.String,System.Exception)">
+        <member name="M:System.ComponentModel.Composition.Hosting.CatalogExportProvider.OnExportsChanged(System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/> class 
-                with the specified error message and exception that is the cause of the  
-                exception.
+            Raises the <see cref="E:System.ComponentModel.Composition.Hosting.AggregateExportProvider.ExportsChanged"/> event.
             </summary>
-            <param name="message">
-                A <see cref="T:System.String"/> containing a message that describes the 
-                <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/>; or <see langword="null"/> to set
-                the <see cref="P:System.Exception.Message"/> property to its default value.
-            </param>
-            <param name="innerException">
-                The <see cref="T:System.Exception"/> that is the underlying cause of the 
-                <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/>; or <see langword="null"/> to set
-                the <see cref="P:System.Exception.InnerException"/> property to <see langword="null"/>.
-            </param>
+            <param name="e">The <see cref="T:System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs"/> instance containing the event data.</param>
         </member>
-        <member name="M:System.ComponentModel.Composition.CardinalityMismatchException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+        <member name="P:System.ComponentModel.Composition.Hosting.CatalogExportProvider.Catalog">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/> class 
-                with the specified serialization data.
+                Gets the composable part catalog that the provider users to 
+                produce exports.
             </summary>
-            <param name="info">
-                The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the 
-                <see cref="T:System.ComponentModel.Composition.CardinalityMismatchException"/>.
-            </param>
-            <param name="context">
-                The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the 
-                source or destination.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="info"/> is <see langword="null"/>.
+            <value>
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/> that the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.CatalogExportProvider"/>
+                uses to produce <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects.
+            </value>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
         </member>
-        <member name="T:System.ComponentModel.Composition.ComposablePartCatalogChangedEventArgs">
+        <member name="P:System.ComponentModel.Composition.Hosting.CatalogExportProvider.SourceProvider">
             <summary>
-                Provides data for the <see cref="E:System.ComponentModel.Composition.INotifyComposablePartCatalogChanged.Changed"/> event.
+                Gets the export provider which provides the provider access to additional
+                exports.
             </summary>
+            <value>
+                The <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> which provides the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.CatalogExportProvider"/> access to additional
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects. The default is <see langword="null"/>.
+            </value>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="value"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.InvalidOperationException">
+                This property has already been set.
+                <para>
+                    -or-
+                </para>
+                The methods on the <see cref="T:System.ComponentModel.Composition.Hosting.CatalogExportProvider"/> 
+                have already been accessed.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CatalogExportProvider"/> has been disposed of.
+            </exception>
+            <remarks>
+                This property must be set before accessing any methods on the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.CatalogExportProvider"/>.
+            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.ComposablePartCatalogChangedEventArgs.#ctor(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.ComposablePartDefinition})">
+        <member name="E:System.ComponentModel.Composition.Hosting.CatalogExportProvider.ExportsChanged">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ComposablePartCatalogChangedEventArgs"/> 
-                class with the specified changed <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> objects.
+                Occurs when the exports in the <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> change.
             </summary>
-            <param name="changedPartsIdentifiers">
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> objects that 
-                have changed in the <see cref="T:System.ComponentModel.Composition.ComposablePartCatalog"/>.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="changedParts"/> is <see langword="null"/>.
-            </exception>
+            <remarks>
+                The <see cref="E:System.ComponentModel.Composition.Hosting.CatalogExportProvider.ExportsChanged"/> event passes an <see cref="T:System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs"/>
+                which provides a list of contract names for the exports that have changed. An export
+                is considered to have changed if it has been added, removed, or updated in the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.CatalogExportProvider"/>.
+            </remarks>
         </member>
-        <member name="P:System.ComponentModel.Composition.ComposablePartCatalogChangedEventArgs.ChangedParts">
+        <member name="T:System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection">
             <summary>
-                Gets the identifiers of the parts that have changed.
+                This class implements a threadsafe ICollection{T} of ComposablePartCatalog.
+                It is exposed as an ICollection(ComposablePartCatalog)
+                It is threadsafe, notifications are not marshalled using a SynchronizationContext.
+                It is Disposable.
             </summary>
-            <value>
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.ComposablePartDefinition"/> objects that 
-                have changed in the <see cref="T:System.ComponentModel.Composition.ComposablePartCatalog"/>.
-            </value>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionEngine.#ctor">
+        <member name="M:System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#ctor">
             <summary>
-            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CompositionEngine"/> class.
+            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.ComposablePartExportProvider"/> class.
             </summary>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionEngine.Dispose">
+        <member name="M:System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.Dispose">
             <summary>
             Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
             </summary>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionEngine.Dispose(System.Boolean)">
+        <member name="M:System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.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:System.ComponentModel.Composition.CompositionEngine.SatisfyImportsAndRegisterForRecomposition(System.ComponentModel.Composition.ComposablePart)">
+        <member name="M:System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition)">
             <summary>
-            Satisfies the imports and registers the part for recomposition.
+            Returns all exports that match the conditions of the specified import.
             </summary>
-            <param name="part">The part.</param>
+            <param name="definition">The <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> that defines the conditions of the
+            <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> to get.</param>
             <returns></returns>
+            <result>
+            An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects that match
+            the conditions defined by <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>, if found; otherwise, an
+            empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
+            </result>
+            <remarks>
+            	<note type="inheritinfo">
+            The implementers should not treat the cardinality-related mismatches as errors, and are not
+            expected to throw exceptions in those cases.
+            For instance, if the import requests exactly one export and the provider has no matching exports or more than one,
+            it should return an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>.
+            </note>
+            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionEngine.UnregisterForRecomposition(System.ComponentModel.Composition.ComposablePart)">
+        <member name="M:System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.OnExportsChanged(System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs)">
             <summary>
-            Unregisters the part for recomposition.
+            Raises the <see cref="E:ExportsChanged"/> event.
+            </summary>
+            <param name="e">The <see cref="T:System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs"/> instance containing the event data.</param>
+        </member>
+        <member name="P:System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.SourceProvider">
+            <summary>
+                Gets the export provider which provides the provider access to
+                exports.
             </summary>
-            <param name="part">The part.</param>
+            <value>
+                The <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> which provides the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.ComposablePartExportProvider"/> access to <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects. 
+                The default is <see langword="null"/>.
+            </value>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="value"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.InvalidOperationException">
+                This property has already been set.
+                <para>
+                    -or-
+                </para>
+                The methods on the <see cref="T:System.ComponentModel.Composition.Hosting.ComposablePartExportProvider"/> 
+                have already been accessed.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.ComposablePartExportProvider"/> has been disposed of.
+            </exception>
+            <remarks>
+                This property must be set before accessing any methods on the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.ComposablePartExportProvider"/>.
+            </remarks>
         </member>
-        <member name="P:System.ComponentModel.Composition.CompositionEngine.SourceProvider">
+        <member name="E:System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.ExportsChanged">
             <summary>
-            Gets or sets the source provider.
+            Occurs when the exports in the <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> change.
             </summary>
-            <value>The source provider.</value>
+            <remarks>
+            The <see cref="E:System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.ExportsChanged"/> event passes an <see cref="T:System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs"/>
+            which provides a list of contract names for the exports that have changed. An export
+            is considered to have changed if it has been added, removed, or updated in the
+            <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/>.
+            </remarks>
         </member>
-        <member name="T:System.ComponentModel.Composition.CompositionServiceExtensions">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionBatch.#ctor">
             <summary>
-                Provides extension methods for the <see cref="T:System.ComponentModel.Composition.ICompositionService"/> interface.
+            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/> class.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionBatch.#ctor(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Primitives.ComposablePart},System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Primitives.ComposablePart})">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/> class.
+            </summary>
+            <param name="partsToAdd">The parts to add.</param>
+            <param name="partsToRemove">The parts to remove.</param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="partsToAdd"/> is <see langword="null"/>.
+                <para>
+                    -or-
+                </para>
+                <paramref name="partsToRemove"/> is <see langword="null"/>.
+            </exception>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionBatch.AddPart(System.ComponentModel.Composition.Primitives.ComposablePart)">
+            <summary>
+                Adds the specified part to the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/>.
+            </summary>
+            <param name="part">
+            The part.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="part"/> is <see langword="null"/>.
+            </exception>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionBatch.RemovePart(System.ComponentModel.Composition.Primitives.ComposablePart)">
+            <summary>
+                Removes the specified part from the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/>.
             </summary>
+            <param name="part">
+            The part.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="part"/> is <see langword="null"/>.
+            </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionServiceExtensions.AddExportedObject``1(System.ComponentModel.Composition.ICompositionService,``0)">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionBatch.AddExportedObject``1(``0)">
             <summary>
-                Adds the specified object to the composition service, exporting it under a contract 
+                Adds the specified object to the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/>, exporting it under a contract 
                 name derived from the specified type parameter.
             </summary>
             <typeparam name="T">
                 The type of the object to add. The contract name is also derived from this type 
                 parameter.
             </typeparam>
-            <param name="compositionService">
-                The <see cref="T:System.ComponentModel.Composition.ICompositionService"/> to add the <see cref="T:System.Object"/> to.
-            </param>
             <param name="exportedObject">
-                The <see cref="T:System.Object"/> to add to the <see cref="T:System.ComponentModel.Composition.ICompositionService"/>. This can
+                The <see cref="T:System.Object"/> to add to the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/>. This can
                 be <see langword="null"/>.
             </param>
             <returns>
-                A <see cref="T:System.ComponentModel.Composition.ComposablePart"/> that can be used remove the <see cref="T:System.Object"/>
-                from the <see cref="T:System.ComponentModel.Composition.ICompositionService"/>.
+                A <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> that can be used remove the <see cref="T:System.Object"/>
+                from the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/>.
             </returns>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="compositionService"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.ICompositionService"/> has been disposed of.
-            </exception>
             <remarks>
                 <para>
                     The contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
-                </para>
-                <para>
-                    The <see cref="T:System.Object"/> is not available until 
-                    <see cref="M:System.ComponentModel.Composition.ICompositionService.Compose"/> is called.
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on <typeparamref name="T"/>.
                 </para>
             </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionServiceExtensions.AddExportedObject(System.ComponentModel.Composition.ICompositionService,System.String,System.Object)">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionBatch.AddExportedObject(System.String,System.Object)">
             <summary>
-                Adds the specified object to the composition service, exporting it under the specified 
+                Adds the specified object to the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/>, exporting it under the specified 
                 contract name.
             </summary>
-            <param name="compositionService">
-                The <see cref="T:System.ComponentModel.Composition.ICompositionService"/> to add the <see cref="T:System.Object"/> to.
-            </param>
             <param name="contractName">
                 A <see cref="T:System.String"/> containing the contract name to export the <see cref="T:System.Object"/> 
                 under.
             </param>
             <param name="exportedObject">
-                The <see cref="T:System.Object"/> to add to the <see cref="T:System.ComponentModel.Composition.ICompositionService"/>. This can
+                The <see cref="T:System.Object"/> to add to the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/>. This can
                 be <see langword="null"/>.
             </param>
             <returns>
-                A <see cref="T:System.ComponentModel.Composition.ComposablePart"/> that can be used remove the <see cref="T:System.Object"/>
-                from the <see cref="T:System.ComponentModel.Composition.ICompositionService"/>.
+                A <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> that can be used remove the <see cref="T:System.Object"/>
+                from the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/>.
             </returns>
             <exception cref="T:System.ArgumentNullException">
-                <paramref name="compositionService"/> is <see langword="null"/>.
-                <para>
-                    -or-
-                </para>
                 <paramref name="contractName"/> is <see langword="null"/>.
             </exception>
             <exception cref="T:System.ArgumentException">
                 <paramref name="contractName"/> is an empty string ("").
             </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.ICompositionService"/> has been disposed of.
-            </exception>
             <remarks>
-                <para>
-                    The <see cref="T:System.Object"/> is not available until 
-                    <see cref="M:System.ComponentModel.Composition.ICompositionService.Compose"/> is called.
-                </para>
             </remarks>
+            
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionServiceExtensions.AddExport(System.ComponentModel.Composition.ICompositionService,System.ComponentModel.Composition.Export)">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionBatch.AddExport(System.ComponentModel.Composition.Primitives.Export)">
             <summary>
-                Adds the specified export to the composition service.
+                Adds the specified export to the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/>.
             </summary>
-            <param name="compositionService">
-                The <see cref="T:System.ComponentModel.Composition.ICompositionService"/> to add the <see cref="T:System.ComponentModel.Composition.Export"/> to.
-            </param>
             <param name="export">
-                The <see cref="T:System.ComponentModel.Composition.Export"/> to add to the <see cref="T:System.ComponentModel.Composition.ICompositionService"/>.
+                The <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> to add to the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/>.
             </param>
             <returns>
-                A <see cref="T:System.ComponentModel.Composition.ComposablePart"/> that can be used remove the <see cref="T:System.ComponentModel.Composition.Export"/>
-                from the <see cref="T:System.ComponentModel.Composition.ICompositionService"/>.
+                A <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> that can be used remove the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>
+                from the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/>.
             </returns>
             <exception cref="T:System.ArgumentNullException">
-                <paramref name="compositionService"/> is <see langword="null"/>.
-                <para>
-                    -or-
-                </para>
                 <paramref name="export"/> is <see langword="null"/>.
             </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.ICompositionService"/> has been disposed of.
-            </exception>
             <remarks>
-                <para>
-                    The <see cref="T:System.ComponentModel.Composition.Export"/> is not available until 
-                    <see cref="M:System.ComponentModel.Composition.ICompositionService.Compose"/> is called.
-                </para>
             </remarks>
         </member>
-        <member name="T:System.ComponentModel.Composition.ContractMismatchException">
-            <summary>
-                The exception that is thrown when the underlying exported object or metadata of an 
-                <see cref="T:System.ComponentModel.Composition.Export`1"/> or <see cref="T:System.ComponentModel.Composition.Export`2"/> object cannot be 
-                cast to <c>T</c> or <c>TMetadataView</c>, respectively.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ContractMismatchException.#ctor">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/> class.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ContractMismatchException.#ctor(System.String)">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/> class 
-                with the specified error message.
-            </summary>
-            <param name="message">
-                A <see cref="T:System.String"/> containing a message that describes the 
-                <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/>; or <see langword="null"/> to set
-                the <see cref="P:System.Exception.Message"/> property to its default value.
-            </param>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ContractMismatchException.#ctor(System.String,System.Exception)">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/> class 
-                with the specified error message and exception that is the cause of the  
-                exception.
-            </summary>
-            <param name="message">
-                A <see cref="T:System.String"/> containing a message that describes the 
-                <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/>; or <see langword="null"/> to set
-                the <see cref="P:System.Exception.Message"/> property to its default value.
-            </param>
-            <param name="innerException">
-                The <see cref="T:System.Exception"/> that is the underlying cause of the 
-                <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/>; or <see langword="null"/> to set
-                the <see cref="P:System.Exception.InnerException"/> property to <see langword="null"/>.
-            </param>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ContractMismatchException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionBatch.AddPart(System.Object)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/> class 
-                with the specified serialization data.
+                Adds the specified attributed composable part to the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/>.
             </summary>
-            <param name="info">
-                The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the 
-                <see cref="T:System.ComponentModel.Composition.ContractMismatchException"/>.
-            </param>
-            <param name="context">
-                The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the 
-                source or destination.
+            <param name="attributedPart">
+                An <see cref="T:System.Object"/> containing the attributed composable part to add to the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/>.
             </param>
+            <returns>
+                A <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> that can be used remove the composable part from
+                the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch"/>.
+            </returns>
             <exception cref="T:System.ArgumentNullException">
-                <paramref name="info"/> is <see langword="null"/>.
+                <paramref name="attributedPart"/> is <see langword="null"/>.
             </exception>
+            <remarks>
+                <para>
+                    This method is equivalent to passing <paramref name="attributedPart"/> to 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.CreateAttributedPart(System.Object)"/> and passing the created 
+                    instance to <see cref="M:System.ComponentModel.Composition.Hosting.CompositionBatch.AddPart(System.ComponentModel.Composition.Primitives.ComposablePart)"/>. 
+                </para>
+            </remarks>
         </member>
-        <member name="T:System.ComponentModel.Composition.DiscoveryMode">
-            <summary>
-                Specifies when an attributed part is discovered by a <see cref="T:System.ComponentModel.Composition.ComposablePartCatalog"/>.
-            </summary>
-        </member>
-        <member name="F:System.ComponentModel.Composition.DiscoveryMode.Auto">
-            <summary>
-                Indicates that an attributed part will be discovered by a 
-                <see cref="T:System.ComponentModel.Composition.ComposablePartCatalog"/> if a member declared at the level of the type's 
-                hierarchy, or if the type itself, is marked with the <see cref="T:System.ComponentModel.Composition.ImportAttribute"/>,
-                <see cref="T:System.ComponentModel.Composition.ImportingConstructorAttribute"/>, or <see cref="T:System.ComponentModel.Composition.ExportAttribute"/> 
-                attributes. Inherited members are not considered.
-            </summary>
-        </member>
-        <member name="F:System.ComponentModel.Composition.DiscoveryMode.Never">
-            <summary>
-                Indicates that an attributed part will never be discovered by a 
-                <see cref="T:System.ComponentModel.Composition.ComposablePartCatalog"/>.
-            </summary>
-        </member>
-        <member name="F:System.ComponentModel.Composition.DiscoveryMode.Always">
+        <member name="P:System.ComponentModel.Composition.Hosting.CompositionBatch.PartsToAdd">
             <summary>
-                Indicates that an attributed part will be discovered by a 
-                <see cref="T:System.ComponentModel.Composition.ComposablePartCatalog"/> if a member declared anywhere in the type's
-                hierarchy, or if the type itself, is marked with the <see cref="T:System.ComponentModel.Composition.ImportAttribute"/>,
-                <see cref="T:System.ComponentModel.Composition.ImportingConstructorAttribute"/>, or <see cref="T:System.ComponentModel.Composition.ExportAttribute"/> 
-                attributes.
+            Returns the collection of parts that will be added.
             </summary>
+            <value>The parts to be added.</value>
         </member>
-        <member name="T:System.ComponentModel.Composition.ExportCollection`2">
+        <member name="P:System.ComponentModel.Composition.Hosting.CompositionBatch.PartsToRemove">
             <summary>
-                Represents a collection of <see cref="T:System.ComponentModel.Composition.Export`2"/> objects.
+            Returns the collection of parts that will be removed.
             </summary>
+            <value>The parts to be removed.</value>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportCollection`2.#ctor">
+        <member name="T:System.ComponentModel.Composition.ICompositionService">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/> class 
-                that is empty.
+                Provides methods for composing <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> objects.
             </summary>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportCollection`2.#ctor(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Export{`0,`1}})">
+        <member name="M:System.ComponentModel.Composition.ICompositionService.SatisfyImports(System.ComponentModel.Composition.Primitives.ComposablePart,System.Boolean)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/> class, 
-                adding the specified <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export`2"/> 
-                objects to the collection.
+                Sets the imports of the specified composable part and registering for it for 
+                recomposition.
             </summary>
-            <param name="items">
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export`2"/> objects to add 
-                to the <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/>; or <see langword="null"/> to create 
-                an <see cref="T:System.ComponentModel.Composition.ExportCollection`2"/> that is empty.
+            <param name="part">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> to set the imports and register for recomposition.
             </param>
-        </member>
-        <member name="T:System.ComponentModel.Composition.ExportCollection`1">
-            <summary>
-                Represents a collection of <see cref="T:System.ComponentModel.Composition.Export`1"/> objects.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ExportCollection`1.#ctor">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/> class 
-                that is empty.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ExportCollection`1.#ctor(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Export{`0}})">
-            <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/> class,
-                adding the specified <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export`1"/> 
-                objects to the collection.
-            </summary>
-            <param name="items">
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export`1"/> objects to add 
-                to the <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/>; or <see langword="null"/> to create an 
-                <see cref="T:System.ComponentModel.Composition.ExportCollection`1"/> that is empty.
+            <param name="registerForRecomposition">
+                Indicates whether the part will keep recomposing after the initial import satisfaction
             </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="part"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.CompositionException">
+                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> will
+                contain a collection of errors that occurred.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.ICompositionService"/> has been disposed of.
+            </exception>
         </member>
-        <member name="T:System.ComponentModel.Composition.ExportsChangedEventArgs">
-            <summary>
-                Provides data for the <see cref="E:System.ComponentModel.Composition.CompositionContainer.ExportsChanged"/> event.
-            </summary>
-        </member>
-        <member name="M:System.ComponentModel.Composition.ExportsChangedEventArgs.#ctor(System.Collections.Generic.IEnumerable{System.String})">
+        <member name="M:System.ComponentModel.Composition.ICompositionService.UnregisterForRecomposition(System.ComponentModel.Composition.Primitives.ComposablePart)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportsChangedEventArgs"/> class with 
-                the specified changed contract names.
+                Unregisters the specified part from recomposition.
             </summary>
-            <param name="changedContractNames">
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of strings representing the contract names of the 
-                exports that have changed in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+            <param name="part">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> to unregister from recomposition.
             </param>
             <exception cref="T:System.ArgumentNullException">
-                <paramref name="changedContractNames"/> is <see langword="null"/>.
+                <paramref name="part"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.ICompositionService"/> has been disposed of.
             </exception>
         </member>
-        <member name="P:System.ComponentModel.Composition.ExportsChangedEventArgs.ChangedContractNames">
-            <summary>
-                Gets the contract names of the exports that have changed.
-            </summary>
-            <value>
-                A <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1"/> of strings representing the contract names of 
-                the exports that have changed in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
-            </value>
-        </member>
-        <member name="T:System.ComponentModel.Composition.Export`2">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionContainer.#ctor">
             <summary>
-                Represents an export. That is, a type that is made up of a delay-created exported object, 
-                metadata that describes that object and a strongly-typed view over that metadata.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> class.
             </summary>
         </member>
-        <member name="T:System.ComponentModel.Composition.Export`1">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionContainer.#ctor(System.ComponentModel.Composition.Hosting.ExportProvider[])">
             <summary>
-                Represents an export. That is, a type that is made up of a delay-created exported object
-                and metadata that describes that object.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> class 
+                with the specified export providers.
             </summary>
+            <param name="providers">
+                A <see cref="T:System.Array"/> of <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> objects which provide 
+                the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> access to <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects,
+                or <see langword="null"/> to set <see cref="P:System.ComponentModel.Composition.Hosting.CompositionContainer.Providers"/> to an empty
+                <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1"/>.
+            </param>
+            <exception cref="T:System.ArgumentException">
+                <paramref name="providers"/> contains an element that is <see langword="null"/>.
+            </exception>
         </member>
-        <member name="T:System.ComponentModel.Composition.Export">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionContainer.#ctor(System.ComponentModel.Composition.Primitives.ComposablePartCatalog,System.ComponentModel.Composition.Hosting.ExportProvider[])">
             <summary>
-                Represents an export. That is, a type that is made up of a delay-created exported object 
-                and metadata that describes that object.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> class 
+                with the specified catalog and export providers.
             </summary>
+            <param name="providers">
+                A <see cref="T:System.Array"/> of <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> objects which provide 
+                the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> access to <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects,
+                or <see langword="null"/> to set <see cref="P:System.ComponentModel.Composition.Hosting.CompositionContainer.Providers"/> to an empty 
+                <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1"/>.
+            </param>
+            <exception cref="T:System.ArgumentException">
+                <paramref name="providers"/> contains an element that is <see langword="null"/>.
+            </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.Export.#ctor">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionContainer.Dispose">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export"/> class.
+            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
             </summary>
-            <remarks>
-                <note type="inheritinfo">
-                    Derived types calling this constructor must override <see cref="P:System.ComponentModel.Composition.Export.Definition"/>
-                    and <see cref="M:System.ComponentModel.Composition.Export.GetExportedObjectCore"/>.
-                </note>
-            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.Export.#ctor(System.String,System.Func{System.Object})">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionContainer.Dispose(System.Boolean)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export"/> class 
-                with the specified contract name and exported object getter.
+            Releases unmanaged and - optionally - managed resources
             </summary>
-            <param name="contractName">
-                A <see cref="T:System.String"/> containing the contract name of the 
-                <see cref="T:System.ComponentModel.Composition.Export"/>.
-            </param>
-            <param name="exportedObjectGetter">
-                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
-                <see cref="T:System.ComponentModel.Composition.Export"/>. This allows the creation of the object to be delayed 
-                until <see cref="M:System.ComponentModel.Composition.Export.GetExportedObject"/> is called.
-            </param>
+            <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:System.ComponentModel.Composition.Hosting.CompositionContainer.ReleaseExport(System.ComponentModel.Composition.Primitives.Export)">
+            <summary>
+                Releases the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> from the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>. Depending 
+                on which <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> this <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> came from Release will cause
+                different behavior to occur.
+            
+                For example the <see cref="T:System.ComponentModel.Composition.Hosting.CatalogExportProvider"/> will only release 
+                an <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> if it comes from a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> that was constructed
+                under a <see cref="F:System.ComponentModel.Composition.CreationPolicy.NonShared"/> context. Release in this context means walking
+                the dependency chain of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>s and removing references and calling Dispose on 
+                the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>s as needed. If the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> was constructed under
+                a <see cref="F:System.ComponentModel.Composition.CreationPolicy.Shared"/> context the <see cref="T:System.ComponentModel.Composition.Hosting.CatalogExportProvider"/>
+                will do nothing because it is a shared <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> and may be in use by other requestors. 
+            </summary>
+            <param name="export"><see cref="T:System.ComponentModel.Composition.Primitives.Export"/> that needs to be released.</param>
             <exception cref="T:System.ArgumentNullException">
-                <paramref name="contractName"/> is <see langword="null"/>.
-                <para>
-                    -or-
-                </para>
-                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-                <paramref name="contractName"/> is an empty string ("").
+                <paramref name="export"/> is <see langword="null"/>.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.Export.#ctor(System.String,System.Collections.Generic.IDictionary{System.String,System.Object},System.Func{System.Object})">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionContainer.SatisfyImports(System.ComponentModel.Composition.Primitives.ComposablePart,System.Boolean)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export"/> class 
-                with the specified contract name, metadata and exported object getter.
+                Satisfies the imports of the specified composable part and registering for it for 
+                recomposition if requested.
             </summary>
-            <param name="contractName">
-                A <see cref="T:System.String"/> containing the contract name of the 
-                <see cref="T:System.ComponentModel.Composition.Export"/>.
-            </param>
-            <param name="metadata">
-                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
-                <see cref="T:System.ComponentModel.Composition.Export"/>; or <see langword="null"/> to set the 
-                <see cref="P:System.ComponentModel.Composition.Export.Metadata"/> property to an empty, read-only 
-                <see cref="T:System.Collections.Generic.IDictionary`2"/>.
+            <param name="part">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> to set the imports and register for recomposition.
             </param>
-            <param name="exportedObjectGetter">
-                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
-                <see cref="T:System.ComponentModel.Composition.Export"/>. This allows the creation of the object to be delayed 
-                until <see cref="M:System.ComponentModel.Composition.Export.GetExportedObject"/> is called.
+            <param name="registerForRecomposition">
+                Indicates whether the part will keep recomposing after the initial import satisfaction
             </param>
             <exception cref="T:System.ArgumentNullException">
-                <paramref name="contractName"/> is <see langword="null"/>.
-                <para>
-                    -or-
-                </para>
-                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
+                <paramref name="part"/> is <see langword="null"/>.
             </exception>
-            <exception cref="T:System.ArgumentException">
-                <paramref name="contractName"/> is an empty string ("").
+            <exception cref="T:System.ComponentModel.Composition.CompositionException">
+                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> will
+                contain a collection of errors that occurred.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.Export.#ctor(System.ComponentModel.Composition.ExportDefinition,System.Func{System.Object})">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionContainer.UnregisterForRecomposition(System.ComponentModel.Composition.Primitives.ComposablePart)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export"/> class 
-                with the specified export definition and exported object getter.
+                Unregisters the specified part from recomposition.
             </summary>
-            <param name="definition">
-                An <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> that describes the contract that the 
-                <see cref="T:System.ComponentModel.Composition.Export"/> satisfies.
-            </param>
-            <param name="exportedObjectGetter">
-                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
-                <see cref="T:System.ComponentModel.Composition.Export"/>. This allows the creation of the object to be delayed 
-                until  <see cref="M:System.ComponentModel.Composition.Export.GetExportedObject"/> is called.
+            <param name="part">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> to unregister from recomposition.
             </param>
             <exception cref="T:System.ArgumentNullException">
-                <paramref name="definition"/> is <see langword="null"/>.
-                <para>
-                    -or-
-                </para>
-                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
+                <paramref name="part"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.Export.GetExportedObject">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionContainer.OnExportsChanged(System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs)">
             <summary>
-                Returns the exported object of the export.
+                Raises the <see cref="E:System.ComponentModel.Composition.Hosting.CompositionContainer.ExportsChanged"/> event.
             </summary>
-            <returns>
-                The exported <see cref="T:System.Object"/> of the <see cref="T:System.ComponentModel.Composition.Export"/>.
-            </returns>
-            <exception cref="T:System.ComponentModel.Composition.CompositionException">
-                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Issues"/> will 
-                contain a list of errors that occurred.
-            </exception>
-            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
-                The current instance is an instance of <see cref="T:System.ComponentModel.Composition.Export`1"/> and the underlying 
-                exported object cannot be cast to <c>T</c>.
-            </exception>
-            <exception cref="T:System.NotImplementedException">
-                The <see cref="M:System.ComponentModel.Composition.Export.GetExportedObjectCore"/> method was not overridden by a derived class.
-            </exception>
+            <param name="e">
+                An <see cref="T:System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs"/> containing the event data.
+            </param>
         </member>
-        <member name="M:System.ComponentModel.Composition.Export.GetExportedObjectCore">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionContainer.GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition)">
             <summary>
-                Returns the exported object of the export.
+            Returns all exports that match the conditions of the specified import.
             </summary>
-            <returns>
-                The exported <see cref="T:System.Object"/> of the <see cref="T:System.ComponentModel.Composition.Export"/>.
-            </returns>
-            <exception cref="T:System.ComponentModel.Composition.CompositionException">
-                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Issues"/> will 
-                contain a list of errors that occurred.
-            </exception>
-            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
-                The current instance is an instance of <see cref="T:System.ComponentModel.Composition.Export`1"/> and the underlying 
-                exported object cannot be cast to <c>T</c>.
-            </exception>
-            <exception cref="T:System.NotImplementedException">
-                The method was not overridden by a derived class.
-            </exception>
+            <param name="definition">The <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> that defines the conditions of the
+            <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> to get.</param>
+            <returns></returns>
+            <result>
+            An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects that match
+            the conditions defined by <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>, if found; otherwise, an
+            empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
+            </result>
             <remarks>
-                <note type="inheritinfo">
-                    Overriders of this method should never return
-                    <see langword="null"/>.
-                </note>
+            	<note type="inheritinfo">
+            The implementers should not treat the cardinality-related mismatches as errors, and are not
+            expected to throw exceptions in those cases.
+            For instance, if the import requests exactly one export and the provider has no matching exports or more than one,
+            it should return an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>.
+            </note>
             </remarks>
         </member>
-        <member name="P:System.ComponentModel.Composition.Export.Definition">
+        <member name="P:System.ComponentModel.Composition.Hosting.CompositionContainer.Catalog">
             <summary>
-                Gets the definition that describes the contract that the export satisfies.
+                Gets the catalog which provides the container access to exports produced
+                from composable parts.
             </summary>
             <value>
-                An <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> that describes the contract that 
-                the <see cref="T:System.ComponentModel.Composition.Export"/> satisfies.
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/> which provides the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> access to exports produced from
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> objects. The default is <see langword="null"/>.
             </value>
-            <exception cref="T:System.NotImplementedException">
-                This property was not overridden by a derived class.
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
-            <remarks>
-                <note type="inheritinfo">
-                    Overriders of this property should never return
-                    <see langword="null"/>.
-                </note>
-            </remarks>
         </member>
-        <member name="P:System.ComponentModel.Composition.Export.Metadata">
+        <member name="P:System.ComponentModel.Composition.Hosting.CompositionContainer.Providers">
             <summary>
-                Gets the metadata of the export.
+                Gets the export providers which provide the container access to additional exports.
             </summary>
             <value>
-                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
-                <see cref="T:System.ComponentModel.Composition.Export"/>.
+                A <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1"/> of <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> objects
+                which provide the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> access to additional
+                <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects. The default is an empty 
+                <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1"/>.
             </value>
-            <exception cref="T:System.NotImplementedException">
-                The <see cref="P:System.ComponentModel.Composition.Export.Definition"/> property was not overridden by a derived class.
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
             </exception>
-            <remarks>
-                <para>
-                    This property returns the value of <see cref="P:System.ComponentModel.Composition.ExportDefinition.Metadata"/>
-                    of the <see cref="P:System.ComponentModel.Composition.Export.Definition"/> property.
-                </para>
-            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.Export`1.#ctor">
+        <member name="E:System.ComponentModel.Composition.Hosting.CompositionContainer.ExportsChanged">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`1"/> class.
+                Occurs when the exports in the <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> change.
             </summary>
             <remarks>
-                <note type="inheritinfo">
-                    Derived types calling this constructor must override <see cref="P:System.ComponentModel.Composition.Export.Definition"/>
-                    and <see cref="M:System.ComponentModel.Composition.Export.GetExportedObjectCore"/>.
-                </note>
+                The <see cref="E:System.ComponentModel.Composition.Hosting.CompositionContainer.ExportsChanged"/> event passes an <see cref="T:System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs"/>
+                which provides a list of contract names for the exports that have changed. An export
+                is considered to have changed if it has been added, removed, or updated in the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.AggregateExportProvider"/>.
             </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.Export`1.#ctor(System.Func{`0})">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionEngine.#ctor">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`1"/> class 
-                with the specified exported object getter.
+            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionEngine"/> class.
             </summary>
-            <param name="exportedObjectGetter">
-                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
-                <see cref="T:System.ComponentModel.Composition.Export`1"/>. This allows the creation of the object to be delayed 
-                until  <see cref="M:System.ComponentModel.Composition.Export`1.GetExportedObject"/> is called.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
-            </exception>
-            <remarks>
-                <para>
-                    The <see cref="P:System.ComponentModel.Composition.ExportDefinition.ContractName"/> property of <see cref="P:System.ComponentModel.Composition.Export.Definition"/> 
-                    is the result of calling <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on 
-                    <typeparamref name="T"/>.
-                </para>
-            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.Export`1.#ctor(System.String,System.Func{`0})">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionEngine.Dispose">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`1"/> class 
-                with the specified contract name and exported object getter.
+            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
             </summary>
-            <param name="contractName">
-                A <see cref="T:System.String"/> containing the contract name of the 
-                <see cref="T:System.ComponentModel.Composition.Export`1"/>.
+        </member>
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionEngine.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:System.ComponentModel.Composition.Hosting.CompositionEngine.SatisfyImports(System.ComponentModel.Composition.Primitives.ComposablePart,System.Boolean)">
+            <summary>
+                Satisfies the imports of the specified composable part and registering for it for 
+                recomposition if requested.
+            </summary>
+            <param name="part">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> to set the imports and register for recomposition.
             </param>
-            <param name="exportedObjectGetter">
-                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
-                <see cref="T:System.ComponentModel.Composition.Export`1"/>. This allows the creation of the object to be delayed 
-                until <see cref="M:System.ComponentModel.Composition.Export`1.GetExportedObject"/> is called.
+            <param name="registerForRecomposition">
+                Indicates whether the part will keep recomposing after the initial import satisfaction
             </param>
             <exception cref="T:System.ArgumentNullException">
-                <paramref name="contractName"/> is <see langword="null"/>.
-                <para>
-                    -or-
-                </para>
-                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
+                <paramref name="part"/> is <see langword="null"/>.
             </exception>
-            <exception cref="T:System.ArgumentException">
-                <paramref name="contractName"/> is an empty string ("").
+            <exception cref="T:System.ComponentModel.Composition.CompositionException">
+                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> will
+                contain a collection of errors that occurred.
+            </exception>
+            <exception cref="T:System.InvalidOperationException">
+                The <see cref="P:System.ComponentModel.Composition.Hosting.CompositionEngine.SourceProvider"/> property was not set.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionEngine"/> has been disposed of.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.Export`1.#ctor(System.String,System.Collections.Generic.IDictionary{System.String,System.Object},System.Func{`0})">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionEngine.UnregisterForRecomposition(System.ComponentModel.Composition.Primitives.ComposablePart)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`1"/> class 
-                with the specified contract name, metadata and exported object getter.
+                Unregisters the specified part from recomposition.
             </summary>
-            <param name="contractName">
-                A <see cref="T:System.String"/> containing the contract name of the 
-                <see cref="T:System.ComponentModel.Composition.Export`1"/>.
-            </param>
-            <param name="metadata">
-                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
-                <see cref="T:System.ComponentModel.Composition.Export`1"/>; or <see langword="null"/> to set the 
-                <see cref="P:System.ComponentModel.Composition.Export.Metadata"/> property to an empty, read-only 
-                <see cref="T:System.Collections.Generic.IDictionary`2"/>.
-            </param>
-            <param name="exportedObjectGetter">
-                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
-                <see cref="T:System.ComponentModel.Composition.Export`1"/>. This allows the creation of the object to be delayed 
-                until  <see cref="M:System.ComponentModel.Composition.Export`1.GetExportedObject"/> is called.
+            <param name="part">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> to unregister from recomposition.
             </param>
             <exception cref="T:System.ArgumentNullException">
-                <paramref name="contractName"/> is <see langword="null"/>.
-                <para>
-                    -or-
-                </para>
-                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
+                <paramref name="part"/> is <see langword="null"/>.
             </exception>
-            <exception cref="T:System.ArgumentException">
-                <paramref name="contractName"/> is an empty string ("").
+            <exception cref="T:System.InvalidOperationException">
+                The <see cref="P:System.ComponentModel.Composition.Hosting.CompositionEngine.SourceProvider"/> property was not set.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionEngine"/> has been disposed of.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.Export`1.#ctor(System.ComponentModel.Composition.ExportDefinition,System.Func{`0})">
+        <member name="P:System.ComponentModel.Composition.Hosting.CompositionEngine.SourceProvider">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`1"/> class 
-                with the specified export definition and exported object getter.
+                Gets the export provider which provides the composition engine access to
+                exports.
             </summary>
-            <param name="definition">
-                An <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> that describes the contract that the 
-                <see cref="T:System.ComponentModel.Composition.Export`1"/> satisfies.
-            </param>
-            <param name="exportedObjectGetter">
-                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
-                <see cref="T:System.ComponentModel.Composition.Export`1"/>. This allows the creation of the object to be delayed 
-                until  <see cref="M:System.ComponentModel.Composition.Export`1.GetExportedObject"/> is called.
-            </param>
+            <value>
+                The <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider"/> which provides the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.CompositionEngine"/> access to <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects. 
+                The default is <see langword="null"/>.
+            </value>
             <exception cref="T:System.ArgumentNullException">
-                <paramref name="definition"/> is <see langword="null"/>.
+                <paramref name="value"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.InvalidOperationException">
+                This property has already been set.
                 <para>
                     -or-
                 </para>
-                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
+                The methods on the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionEngine"/> 
+                have already been accessed.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionEngine"/> has been disposed of.
             </exception>
+            <remarks>
+                This property must be set before accessing any methods on the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.CompositionEngine"/>.
+            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.Export`1.GetExportedObject">
+        <member name="M:System.ComponentModel.Composition.Hosting.CompositionServices.IsAtMostOne(System.ComponentModel.Composition.Primitives.ImportCardinality)">
             <summary>
-                Returns the exported object of the export.
+                Returns a value indicating whether cardinality is 
+                <see cref="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ZeroOrOne"/> or 
+                <see cref="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ExactlyOne"/>.
             </summary>
-            <returns>
-                A <typeparamref name="T"/> representing the exported object of the 
-                <see cref="T:System.ComponentModel.Composition.Export`1"/>.
-            </returns>
-            <exception cref="T:System.ComponentModel.Composition.CompositionException">
-                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Issues"/> will contain a list of errors that occurred.
-            </exception>
-            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
-                The underlying exported object cannot be cast to <typeparamref name="T"/>.
-            </exception>
-            <exception cref="T:System.NotImplementedException">
-                The <see cref="M:System.ComponentModel.Composition.Export.GetExportedObjectCore"/> method was not overridden by a derived class.
+        </member>
+        <member name="T:System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs">
+            <summary>
+                Provides data for the <see cref="E:System.ComponentModel.Composition.Hosting.CompositionContainer.ExportsChanged"/> event.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs.#ctor(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs"/> class with 
+                the specified changed contract names.
+            </summary>
+            <param name="changedContractNames">
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of strings representing the contract names of the 
+                exports that have changed in the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="changedContractNames"/> is <see langword="null"/>.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.Export`2.#ctor">
+        <member name="P:System.ComponentModel.Composition.Hosting.ExportsChangedEventArgs.ChangedContractNames">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`2"/> class.
+                Gets the contract names of the exports that have changed.
             </summary>
-            <remarks>
-                <note type="inheritinfo">
-                    Derived types calling this constructor must override <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> 
-                    and <see cref="M:System.ComponentModel.Composition.Export.GetExportedObjectCore"/>.
-                </note>
-            </remarks>
+            <value>
+                A <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1"/> of strings representing the contract names of 
+                the exports that have changed in the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
+            </value>
         </member>
-        <member name="M:System.ComponentModel.Composition.Export`2.#ctor(System.String,System.Collections.Generic.IDictionary{System.String,System.Object},System.Func{`0})">
+        <member name="T:System.ComponentModel.Composition.Hosting.TypeCatalog">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`2"/> class 
-                with the specified contract name, metadata and exported object getter.
+                An immutable ComposablePartCatalog created from a type array or a list of managed types.  This class is threadsafe.
+                It is Disposable.
             </summary>
-            <param name="contractName">
-                A <see cref="T:System.String"/> containing the contract name of the 
-                <see cref="T:System.ComponentModel.Composition.Export`2"/>.
-            </param>
-            <param name="metadata">
-                An <see cref="T:System.Collections.Generic.IDictionary`2"/> containing the metadata of the 
-                <see cref="T:System.ComponentModel.Composition.Export`2"/>; or <see langword="null"/> to set the 
-                <see cref="P:System.ComponentModel.Composition.Export.Metadata"/> property to an empty, read-only 
-                <see cref="T:System.Collections.Generic.IDictionary`2"/>.
-            </param>
-            <param name="exportedObjectGetter">
-                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
-                <see cref="T:System.ComponentModel.Composition.Export`2"/>. This allows the creation of the object to be delayed 
-                until <see cref="M:System.ComponentModel.Composition.Export.GetExportedObject"/> is called.
+        </member>
+        <member name="M:System.ComponentModel.Composition.Hosting.TypeCatalog.#ctor(System.Type[])">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.TypeCatalog"/> class 
+                with the specified types.
+            </summary>
+            <param name="types">
+                An <see cref="T:System.Array"/> of attributed <see cref="T:System.Type"/> objects to add to the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.TypeCatalog"/>.
             </param>
             <exception cref="T:System.ArgumentNullException">
-                <paramref name="contractName"/> is <see langword="null"/>.
+                <paramref name="types"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ArgumentException">
+                <paramref name="types"/> contains an element that is <see langword="null"/>.
                 <para>
                     -or-
                 </para>
-                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-                <paramref name="contractName"/> is an empty string ("").
+                <paramref name="types"/> contains an element that was loaded in the Reflection-only context.
             </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.Export`2.#ctor(System.ComponentModel.Composition.ExportDefinition,System.Func{`0})">
+        <member name="M:System.ComponentModel.Composition.Hosting.TypeCatalog.#ctor(System.Collections.Generic.IEnumerable{System.Type})">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Export`2"/> class 
-                with the specified export definition and exported object getter.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.TypeCatalog"/> class
+                with the specified types.
             </summary>
-            <param name="definition">
-                An <see cref="T:System.ComponentModel.Composition.ExportDefinition"/> that describes the contract that the 
-                <see cref="T:System.ComponentModel.Composition.Export`2"/> satisfies.
-            </param>
-            <param name="exportedObjectGetter">
-                A <see cref="T:System.Func`1"/> that is called to create the exported object of the 
-                <see cref="T:System.ComponentModel.Composition.Export`2"/>. This allows the creation of the object to be delayed 
-                until <see cref="M:System.ComponentModel.Composition.Export.GetExportedObject"/> is called.
+            <param name="types">
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of attributed <see cref="T:System.Type"/> objects to add 
+                to the <see cref="T:System.ComponentModel.Composition.Hosting.TypeCatalog"/>.
             </param>
             <exception cref="T:System.ArgumentNullException">
-                <paramref name="definition"/> is <see langword="null"/>.
+                <paramref name="types"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ArgumentException">
+                <paramref name="types"/> contains an element that is <see langword="null"/>.
                 <para>
                     -or-
                 </para>
-                <paramref name="exportedObjectGetter"/> is <see langword="null"/>.
+                <paramref name="types"/> contains an element that was loaded in the reflection-only context.
             </exception>
         </member>
-        <member name="P:System.ComponentModel.Composition.Export`2.MetadataView">
+        <member name="M:System.ComponentModel.Composition.Hosting.TypeCatalog.GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)">
             <summary>
-                Gets the metadata view for the export.
+                Returns the export definitions that match the constraint defined by the specified definition.
             </summary>
-            <value>
-                A <typeparamref name="TMetadataView"/> representing the strongly-typed metadata view 
-                for the <see cref="T:System.ComponentModel.Composition.Export`2"/>.
-            </value>
-            <exception cref="T:System.ComponentModel.Composition.ContractMismatchException">
-                The <see cref="P:System.ComponentModel.Composition.Export.Metadata"/> property cannot be converted to <typeparamref name="TMetadataView"/>.
+            <param name="definition">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> that defines the conditions of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> objects to return.
+            </param>
+            <returns>
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.TempTuple`2"/> containing the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> objects and their associated 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> for objects that match the constraint defined 
+                by <paramref name="definition"/>.
+            </returns>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="definition"/> is <see langword="null"/>.
             </exception>
-            <exception cref="T:System.NotImplementedException">
-                The <see cref="P:System.ComponentModel.Composition.Export.Definition"/> property was not overridden by a derived class.
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.TypeCatalog"/> has been disposed of.
             </exception>
-            <remarks>
-                <para>
-                    This property represents a strong-typed view over the <see cref="P:System.ComponentModel.Composition.Export.Metadata"/> property.
-                </para>
-            </remarks>
         </member>
-        <member name="T:System.ComponentModel.Composition.ImportCardinality">
+        <member name="M:System.ComponentModel.Composition.Hosting.TypeCatalog.ToString">
             <summary>
-                Indicates the cardinality of the <see cref="T:System.ComponentModel.Composition.Export"/> objects required by an <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>.
+                Returns a string representation of the type catalog.
             </summary>
+            <returns>
+                A <see cref="T:System.String"/> containing the string representation of the <see cref="T:System.ComponentModel.Composition.Hosting.TypeCatalog"/>.
+            </returns>
         </member>
-        <member name="F:System.ComponentModel.Composition.ImportCardinality.ZeroOrOne">
+        <member name="P:System.ComponentModel.Composition.Hosting.TypeCatalog.Parts">
             <summary>
-                Zero or one <see cref="T:System.ComponentModel.Composition.Export"/> objects are required by an <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>.
+                Gets the part definitions of the catalog.
             </summary>
+            <value>
+                A <see cref="T:System.Linq.IQueryable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> objects of the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.TypeCatalog"/>.
+            </value>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.TypeCatalog"/> has been disposed of.
+            </exception>
         </member>
-        <member name="F:System.ComponentModel.Composition.ImportCardinality.ExactlyOne">
+        <member name="P:System.ComponentModel.Composition.Hosting.TypeCatalog.System#ComponentModel#Composition#Primitives#ICompositionElement#DisplayName">
             <summary>
-                Exactly one <see cref="T:System.ComponentModel.Composition.Export"/> object is required by an <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>.
+                Gets the display name of the type catalog.
             </summary>
+            <value>
+                A <see cref="T:System.String"/> containing a human-readable display name of the <see cref="T:System.ComponentModel.Composition.Hosting.TypeCatalog"/>.
+            </value>
         </member>
-        <member name="F:System.ComponentModel.Composition.ImportCardinality.ZeroOrMore">
+        <member name="P:System.ComponentModel.Composition.Hosting.TypeCatalog.System#ComponentModel#Composition#Primitives#ICompositionElement#Origin">
             <summary>
-                Zero or more <see cref="T:System.ComponentModel.Composition.Export"/> objects are required by an <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>.
+                Gets the composition element from which the type catalog originated.
             </summary>
+            <value>
+                This property always returns <see langword="null"/>.
+            </value>
         </member>
         <member name="T:System.ComponentModel.Composition.ImportingConstructorAttribute">
             <summary>
@@ -3787,435 +4177,400 @@
                 Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ImportingConstructorAttribute"/> class.
             </summary>
         </member>
-        <member name="M:System.ComponentModel.Composition.MutableExportProvider.#ctor">
+        <member name="T:System.ComponentModel.Composition.MetadataViewAttribute">
             <summary>
-            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.MutableExportProvider"/> class.
+                Specifies the provider for constructing Metadata Views
             </summary>
         </member>
-        <member name="M:System.ComponentModel.Composition.MutableExportProvider.Dispose">
+        <member name="M:System.ComponentModel.Composition.MetadataViewAttribute.#ctor">
             <summary>
-            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.MetadataViewAttribute"/> class.
             </summary>
         </member>
-        <member name="M:System.ComponentModel.Composition.MutableExportProvider.Dispose(System.Boolean)">
+        <member name="P:System.ComponentModel.Composition.MetadataViewAttribute.Provider">
             <summary>
-            Releases unmanaged and - optionally - managed resources
+                Gets or sets a value indicating the Type which operates as a provider for 
+                Strongly Typed Metadata Views.
             </summary>
-            <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
+            <value>
+                The Type that is the provider for Strongly Typed Metadata Views
+            </value>
         </member>
-        <member name="M:System.ComponentModel.Composition.MutableExportProvider.GetExportsCore(System.ComponentModel.Composition.ImportDefinition)">
+        <member name="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalogChangedEventArgs">
             <summary>
-            Returns all exports that match the conditions of the specified import.
+                Provides data for the <see cref="E:System.ComponentModel.Composition.Primitives.INotifyComposablePartCatalogChanged.Changed"/> event.
             </summary>
-            <param name="importDefinition">The <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> that defines the conditions of the
-            <see cref="T:System.ComponentModel.Composition.Export"/> to get.</param>
-            <returns></returns>
-            <result>
-            An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/> objects that match
-            the conditions defined by <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>, if found; otherwise, an
-            empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            </result>
-            <remarks>
-            	<note type="inheritinfo">
-            The implementers should not treat the cardinality-related mismatches as errors, and are not
-            expected to throw exceptions in those cases.
-            For instance, if the import requests exactly one export and the provider has no matching exports or more than one,
-            it should return an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/>.
-            </note>
-            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.MutableExportProvider.OnExportsChanged(System.ComponentModel.Composition.ExportsChangedEventArgs)">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePartCatalogChangedEventArgs.#ctor(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Primitives.ComposablePartDefinition})">
             <summary>
-            Raises the <see cref="E:ExportsChanged"/> event.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalogChangedEventArgs"/> 
+                class with the specified changed <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> objects.
             </summary>
-            <param name="e">The <see cref="T:System.ComponentModel.Composition.ExportsChangedEventArgs"/> instance containing the event data.</param>
+            <param name="changedDefinitions">
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> objects that 
+                have changed in the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/>.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="changedParts"/> is <see langword="null"/>.
+            </exception>
         </member>
-        <member name="P:System.ComponentModel.Composition.MutableExportProvider.SourceProvider">
+        <member name="P:System.ComponentModel.Composition.Primitives.ComposablePartCatalogChangedEventArgs.ChangedDefinitions">
             <summary>
-            Gets or sets the source provider.
+                Gets the identifiers of the parts that have changed.
             </summary>
-            <value>The source provider.</value>
+            <value>
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> objects that 
+                have changed in the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/>.
+            </value>
         </member>
-        <member name="E:System.ComponentModel.Composition.MutableExportProvider.ExportsChanged">
+        <member name="T:System.ComponentModel.Composition.Primitives.ComposablePartException">
             <summary>
-            Occurs when the exports in the <see cref="T:System.ComponentModel.Composition.ExportProvider"/> change.
+                The exception that is thrown when an error occurs when calling methods on a
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>.
             </summary>
-            <remarks>
-            The <see cref="E:System.ComponentModel.Composition.MutableExportProvider.ExportsChanged"/> event passes an <see cref="T:System.ComponentModel.Composition.ExportsChangedEventArgs"/>
-            which provides a list of contract names for the exports that have changed. An export
-            is considered to have changed if it has been added, removed, or updated in the
-            <see cref="T:System.ComponentModel.Composition.ExportProvider"/>.
-            </remarks>
         </member>
-        <member name="T:System.ComponentModel.Composition.ExportCollection">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePartException.#ctor">
             <summary>
-                Represents a collection of <see cref="T:System.ComponentModel.Composition.Export"/> objects.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/> class.
             </summary>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportCollection.#ctor">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePartException.#ctor(System.String)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportCollection"/> class 
-                that is empty.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/> class 
+                with the specified error message.
             </summary>
+            <param name="message">
+                A <see cref="T:System.String"/> containing a message that describes the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.Exception.Message"/> property to its default value.
+            </param>
+            <param name="element">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ICompositionElement"/> that is the cause of the
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.ComponentModel.Composition.Primitives.ComposablePartException.Element"/> property to 
+                <see langword="null"/>.
+            </param>
         </member>
-        <member name="M:System.ComponentModel.Composition.ExportCollection.#ctor(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Export})">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePartException.#ctor(System.String,System.ComponentModel.Composition.Primitives.ICompositionElement)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportCollection"/> class,
-                adding the specified <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/>
-                objects to the collection.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/> class 
+                with the specified error message and composition element that is the cause of
+                the exception.
             </summary>
-            <param name="items">
-                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/> objects to add 
-                to the <see cref="T:System.ComponentModel.Composition.ExportCollection"/>; or <see langword="null"/> to create 
-                an <see cref="T:System.ComponentModel.Composition.ExportCollection"/> that is empty.
+            <param name="message">
+                A <see cref="T:System.String"/> containing a message that describes the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.Exception.Message"/> property to its default value.
             </param>
         </member>
-        <member name="T:System.ComponentModel.Composition.ImportRequiredMetadataAttribute">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePartException.#ctor(System.String,System.Exception)">
             <summary>
-                Specifies required metadata for a property, field or parameter marked with the
-                <see cref="T:System.ComponentModel.Composition.ImportAttribute"/>.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/> class 
+                with the specified error message and exception that is the cause of the  
+                exception.
             </summary>
-            <remarks>
-                By default, any export that matches the contract name of an import will be considered a
-                match for that import. Use this attribute to indicate that an export should also contain 
-                specific metadata to be considered a match.
-            </remarks>
+            <param name="message">
+                A <see cref="T:System.String"/> containing a message that describes the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.Exception.Message"/> property to its default value.
+            </param>
+            <param name="innerException">
+                The <see cref="T:System.Exception"/> that is the underlying cause of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.Exception.InnerException"/> property to <see langword="null"/>.
+            </param>
         </member>
-        <member name="M:System.ComponentModel.Composition.ImportRequiredMetadataAttribute.#ctor(System.String)">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePartException.#ctor(System.String,System.ComponentModel.Composition.Primitives.ICompositionElement,System.Exception)">
             <summary>
-                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ImportRequiredMetadataAttribute"/> class
-                with the specified required metadata name.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/> class 
+                with the specified error message, and composition element and exception that 
+                are the cause of the exception.
             </summary>
-            <param name="name">
-                A <see cref="T:System.String"/> containing the name of the required metadata value, or 
-                <see langword="null"/> to use an empty string ("").
+            <param name="message">
+                A <see cref="T:System.String"/> containing a message that describes the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.Exception.Message"/> property to its default value.
+            </param>
+            <param name="element">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ICompositionElement"/> that is the cause of the
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.ComponentModel.Composition.Primitives.ComposablePartException.Element"/> property to 
+                <see langword="null"/>.
+            </param>
+            <param name="innerException">
+                The <see cref="T:System.Exception"/> that is the underlying cause of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.Exception.InnerException"/> property to <see langword="null"/>.
             </param>
         </member>
-        <member name="P:System.ComponentModel.Composition.ImportRequiredMetadataAttribute.Name">
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePartException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
             <summary>
-                Gets the name of the required metadata value.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/> class 
+                with the specified serialization data.
+            </summary>
+            <param name="info">
+                The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/>.
+            </param>
+            <param name="context">
+                The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the 
+                source or destination.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="info"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.Runtime.Serialization.SerializationException">
+                <paramref name="info"/> is missing a required value.
+            </exception>
+            <exception cref="T:System.InvalidCastException">
+                <paramref name="info"/> contains a value that cannot be cast to the correct type.
+            </exception>
+        </member>
+        <member name="M:System.ComponentModel.Composition.Primitives.ComposablePartException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+                Gets the serialization data of the exception.
+            </summary>
+            <param name="info">
+                The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/>.
+            </param>
+            <param name="context">
+                The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the 
+                source or destination.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="info"/> is <see langword="null"/>.
+            </exception>
+        </member>
+        <member name="P:System.ComponentModel.Composition.Primitives.ComposablePartException.Element">
+            <summary>
+                Gets the composition element that is the cause of the exception.
             </summary>
             <value>
-                A <see cref="T:System.String"/> containing the name of the required metadata value.
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ICompositionElement"/> that is the cause of the
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/>. The default is <see langword="null"/>.
             </value>
         </member>
-        <member name="T:System.ComponentModel.Composition.ICompositionService">
+        <member name="T:System.ComponentModel.Composition.Primitives.ImportCardinality">
             <summary>
-                Provides methods for composing <see cref="T:System.ComponentModel.Composition.ComposablePart"/> objects.
+                Indicates the cardinality of the <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects required by an <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>.
             </summary>
         </member>
-        <member name="M:System.ComponentModel.Composition.ICompositionService.AddPart(System.ComponentModel.Composition.ComposablePart)">
+        <member name="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ZeroOrOne">
             <summary>
-                Adds the specified composable part to the composition service.
+                Zero or one <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects are required by an <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>.
             </summary>
-            <param name="part">
-                The <see cref="T:System.ComponentModel.Composition.ComposablePart"/> to add to the <see cref="T:System.ComponentModel.Composition.ICompositionService"/>.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="part"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.ICompositionService"/> has been disposed of.
-            </exception>
-            <remarks>
-                <para>
-                    If <paramref name="part"/> is already in the <see cref="T:System.ComponentModel.Composition.ICompositionService"/> 
-                    then this method does nothing.
-                </para>
-                <para>
-                    The <see cref="T:System.ComponentModel.Composition.ComposablePart"/> is not composed, nor are its exports available 
-                    until <see cref="M:System.ComponentModel.Composition.ICompositionService.Compose"/> is called.
-                </para>
-            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.ICompositionService.Compose">
+        <member name="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ExactlyOne">
             <summary>
-                Composes the composition service.
+                Exactly one <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> object is required by an <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>.
             </summary>
-            <exception cref="T:System.ComponentModel.Composition.CompositionException">
-                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Issues"/> will
-                contain a list of errors that occurred.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-                <see cref="M:System.ComponentModel.Composition.ICompositionService.Compose"/> was called again before composition had finished.
-            </exception>
-            <remarks>
-                <para>
-                    You can use the <see cref="P:System.ComponentModel.Composition.ICompositionService.IsComposing"/> property to determine if the
-                    <see cref="T:System.ComponentModel.Composition.ICompositionService"/> is in the process of composing.
-                </para>
-            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.ICompositionService.RemovePart(System.ComponentModel.Composition.ComposablePart)">
+        <member name="F:System.ComponentModel.Composition.Primitives.ImportCardinality.ZeroOrMore">
             <summary>
-                Removes the specified composable part from the composition service.
+                Zero or more <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects are required by an <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/>.
             </summary>
-            <param name="part">
-                The <see cref="T:System.ComponentModel.Composition.ComposablePart"/> to remove from the 
-                <see cref="T:System.ComponentModel.Composition.ICompositionService"/>.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="part"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.ICompositionService"/> has been disposed of.
-            </exception>
-            <remarks>
-                <para>
-                    If <paramref name="part"/> is not in the <see cref="T:System.ComponentModel.Composition.ICompositionService"/> then
-                    this method does nothing.
-                </para>
-                <para>
-                    The <see cref="T:System.ComponentModel.Composition.ComposablePart"/> is not removed from the 
-                    <see cref="T:System.ComponentModel.Composition.ICompositionService"/> and its exports are still available until 
-                    <see cref="M:System.ComponentModel.Composition.ICompositionService.Compose"/> is called.
-                </para>
-            </remarks>
         </member>
-        <member name="P:System.ComponentModel.Composition.ICompositionService.IsCompositionPending">
+        <member name="T:System.ComponentModel.Composition.PartMetadataAttribute">
+            <summary>
+                Specifies metadata for a type to be used as a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> and
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.PartMetadataAttribute.#ctor(System.String,System.Object)">
+            <summary>
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.PartMetadataAttribute"/> with the 
+                specified name and metadata value.
+            </summary>
+            <param name="name">
+                A <see cref="T:System.String"/> containing the name of the metadata value; or 
+                <see langword="null"/> to use an empty string ("").
+            </param>
+            <param name="value">
+                An <see cref="T:System.Object"/> containing the metadata value. This can be 
+                <see langword="null"/>.
+            </param>
+        </member>
+        <member name="P:System.ComponentModel.Composition.PartMetadataAttribute.Name">
             <summary>
-                Gets a value indicating whether the composition service has a composition pending.
+                Gets the name of the metadata value.
             </summary>
             <value>
-                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.ICompositionService"/> currently has
-                exported objects and <see cref="T:System.ComponentModel.Composition.ComposablePart"/> objects that have not yet been
-                composed by a call to <see cref="M:System.ComponentModel.Composition.ICompositionService.Compose"/>; otherwise, <see langword="false"/>.
+                A <see cref="T:System.String"/> containing the name of the metadata value.
             </value>
         </member>
-        <member name="P:System.ComponentModel.Composition.ICompositionService.IsComposing">
+        <member name="P:System.ComponentModel.Composition.PartMetadataAttribute.Value">
             <summary>
-                Gets a value indicating whether the container is currently composing.
+                Gets the metadata value.
             </summary>
             <value>
-                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> is currently 
-                composing due to a call to <see cref="M:System.ComponentModel.Composition.ICompositionService.Compose"/>, otherwise, <see langword="false"/>.
+                An <see cref="T:System.Object"/> containing the metadata value.
             </value>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionContainer.#ctor">
+        <member name="T:System.ComponentModel.Composition.ExportCollection">
             <summary>
-            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> class.
+                Represents a collection of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects.
             </summary>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionContainer.#ctor(System.ComponentModel.Composition.ExportProvider[])">
+        <member name="M:System.ComponentModel.Composition.ExportCollection.#ctor">
             <summary>
-            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> class.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportCollection"/> class 
+                that is empty.
             </summary>
-            <param name="providers">The providers.</param>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionContainer.#ctor(System.ComponentModel.Composition.ComposablePartCatalog,System.ComponentModel.Composition.ExportProvider[])">
+        <member name="M:System.ComponentModel.Composition.ExportCollection.#ctor(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.Primitives.Export})">
             <summary>
-            Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> class.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ExportCollection"/> class,
+                adding the specified <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/>
+                objects to the collection.
             </summary>
-            <param name="catalog">The catalog.</param>
-            <param name="providers">The providers.</param>
+            <param name="items">
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.Export"/> objects to add 
+                to the <see cref="T:System.ComponentModel.Composition.ExportCollection"/>; or <see langword="null"/> to create 
+                an <see cref="T:System.ComponentModel.Composition.ExportCollection"/> that is empty.
+            </param>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionContainer.Dispose">
+        <member name="T:System.ComponentModel.Composition.ImportRequiredMetadataAttribute">
             <summary>
-            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+                Specifies required metadata for a property, field or parameter marked with the
+                <see cref="T:System.ComponentModel.Composition.ImportAttribute"/>.
             </summary>
+            <remarks>
+                By default, any export that matches the contract name of an import will be considered a
+                match for that import. Use this attribute to indicate that an export should also contain 
+                specific metadata to be considered a match.
+            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionContainer.Dispose(System.Boolean)">
+        <member name="M:System.ComponentModel.Composition.ImportRequiredMetadataAttribute.#ctor(System.String)">
             <summary>
-            Releases unmanaged and - optionally - managed resources
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.ImportRequiredMetadataAttribute"/> class
+                with the specified required metadata name.
             </summary>
-            <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
+            <param name="name">
+                A <see cref="T:System.String"/> containing the name of the required metadata value, or 
+                <see langword="null"/> to use an empty string ("").
+            </param>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionContainer.AddPart(System.Object)">
+        <member name="P:System.ComponentModel.Composition.ImportRequiredMetadataAttribute.Name">
             <summary>
-                Adds the specified attributed composable part to the container.
+                Gets the name of the required metadata value.
             </summary>
-            <param name="attributedPart">
-                An <see cref="T:System.Object"/> containing the attributed composable part to add to the 
-                <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
-            </param>
-            <returns>
-                A <see cref="T:System.ComponentModel.Composition.ComposablePart"/> that can be used remove the composable part from
-                the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="attributedPart"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
-            </exception>
-            <remarks>
-                <para>
-                    This method is equivalent to passing <paramref name="attributedPart"/> to 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.CreateAttributedPart(System.Object)"/> and passing the created 
-                    instance to <see cref="M:System.ComponentModel.Composition.CompositionContainer.AddPart(System.ComponentModel.Composition.ComposablePart)"/>. 
-                </para>
-                <para>
-                    If <paramref name="attributedPart"/> is already in the 
-                    <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> then this method does nothing.
-                </para>
-                <para>
-                    The composable part is not composed, nor are its exports available until
-                    <see cref="M:System.ComponentModel.Composition.CompositionContainer.Compose"/> is called.
-                </para>
-            </remarks>
+            <value>
+                A <see cref="T:System.String"/> containing the name of the required metadata value.
+            </value>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionContainer.AddPart(System.ComponentModel.Composition.ComposablePart)">
+        <member name="T:System.ComponentModel.Composition.CompositionException">
             <summary>
-                Adds the specified composable part to the container.
+                The exception that is thrown when one or more errors occur during composition in 
+                a <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>.
             </summary>
-            <param name="part">
-                The <see cref="T:System.ComponentModel.Composition.ComposablePart"/> to add to the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="part"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
-            </exception>
-            <remarks>
-                <para>
-                    If <paramref name="part"/> is already in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> 
-                    then this method does nothing.
-                </para>
-                <para>
-                    The <see cref="T:System.ComponentModel.Composition.ComposablePart"/> is not composed, nor are its exports available 
-                    until <see cref="M:System.ComponentModel.Composition.CompositionContainer.Compose"/> is called.
-                </para>
-            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionContainer.Compose">
+        <member name="M:System.ComponentModel.Composition.CompositionException.#ctor">
             <summary>
-                Composes the container.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CompositionException"/> class.
             </summary>
-            <exception cref="T:System.ComponentModel.Composition.CompositionException">
-                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Issues"/> will
-                contain a list of errors that occurred.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-                <see cref="M:System.ComponentModel.Composition.CompositionContainer.Compose"/> was called again before composition had finished.
-            </exception>
-            <remarks>
-                <para>
-                    You can use the <see cref="P:System.ComponentModel.Composition.CompositionContainer.IsComposing"/> property to determine if the
-                    <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> is in the process of composing.
-                </para>
-            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionContainer.RemovePart(System.ComponentModel.Composition.ComposablePart)">
+        <member name="M:System.ComponentModel.Composition.CompositionException.#ctor(System.String)">
             <summary>
-                Removes the specified composable part from the container.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CompositionException"/> class 
+                with the specified error message.
             </summary>
-            <param name="part">
-                The <see cref="T:System.ComponentModel.Composition.ComposablePart"/> to remove from the 
-                <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>.
+            <param name="message">
+                A <see cref="T:System.String"/> containing a message that describes the 
+                <see cref="T:System.ComponentModel.Composition.CompositionException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.Exception.Message"/> property to its default value.
             </param>
-            <exception cref="T:System.ArgumentNullException">
-                <paramref name="part"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-                The <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> has been disposed of.
-            </exception>
-            <remarks>
-                <para>
-                    If <paramref name="part"/> is not in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> then
-                    this method does nothing.
-                </para>
-                <para>
-                    The <see cref="T:System.ComponentModel.Composition.ComposablePart"/> is not removed from the 
-                    <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> and its exports are still available until 
-                    <see cref="M:System.ComponentModel.Composition.CompositionContainer.Compose"/> is called.
-                </para>
-            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionContainer.CreatePart(System.Object)">
+        <member name="M:System.ComponentModel.Composition.CompositionException.#ctor(System.String,System.Exception)">
             <summary>
-                Creates a composable part for the specified object.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CompositionException"/> class 
+                with the specified error message and exception that is the cause of the  
+                exception.
             </summary>
-            <param name="part">
-                An <see cref="T:System.Object"/> containing the object to create a <see cref="T:System.ComponentModel.Composition.ComposablePart"/> 
-                for.
+            <param name="message">
+                A <see cref="T:System.String"/> containing a message that describes the 
+                <see cref="T:System.ComponentModel.Composition.CompositionException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.Exception.Message"/> property to its default value.
+            </param>
+            <param name="innerException">
+                The <see cref="T:System.Exception"/> that is the underlying cause of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/>; or <see langword="null"/> to set
+                the <see cref="P:System.Exception.InnerException"/> property to <see langword="null"/>.
             </param>
-            <returns>
-                The created <see cref="T:System.ComponentModel.Composition.ComposablePart"/>.
-            </returns>
-            <remarks>
-                <para>
-                    The default implementation of this method returns an instance of the
-                    default attributed composable part.
-                </para>
-                <para>
-                    This method can be overridden by a derived class. Implementers can override 
-                    <see cref="M:System.ComponentModel.Composition.CompositionContainer.CreatePart(System.Object)"/> to provide a custom implementation of 
-                    <see cref="T:System.ComponentModel.Composition.ComposablePart"/> for the <see cref="M:System.ComponentModel.Composition.CompositionContainer.AddPart(System.Object)"/> method.
-                </para>
-            </remarks>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionContainer.OnExportsChanged(System.ComponentModel.Composition.ExportsChangedEventArgs)">
+        <member name="M:System.ComponentModel.Composition.CompositionException.#ctor(System.Collections.Generic.IEnumerable{System.ComponentModel.Composition.CompositionError})">
             <summary>
-                Raises the <see cref="E:System.ComponentModel.Composition.CompositionContainer.ExportsChanged"/> event.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CompositionException"/> class 
+                with the specified errors.
             </summary>
-            <param name="e">
-                An <see cref="T:System.ComponentModel.Composition.ExportsChangedEventArgs"/> containing the event data.
+            <param name="errors">
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.CompositionError"/> objects
+                representing the errors that are the cause of the 
+                <see cref="T:System.ComponentModel.Composition.CompositionException"/>; or <see langword="null"/> to set the 
+                <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> property to an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
             </param>
+            <exception cref="T:System.ArgumentException">
+                <paramref name="errors"/> contains an element that is <see langword="null"/>.
+            </exception>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionContainer.GetExportsCore(System.ComponentModel.Composition.ImportDefinition)">
+        <member name="M:System.ComponentModel.Composition.CompositionException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
             <summary>
-            Returns all exports that match the conditions of the specified import.
+                Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.CompositionException"/> class 
+                with the specified serialization data.
             </summary>
-            <param name="importDefinition">The <see cref="T:System.ComponentModel.Composition.ImportDefinition"/> that defines the conditions of the
-            <see cref="T:System.ComponentModel.Composition.Export"/> to get.</param>
-            <returns></returns>
-            <result>
-            An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/> objects that match
-            the conditions defined by <see cref="T:System.ComponentModel.Composition.ImportDefinition"/>, if found; otherwise, an
-            empty <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            </result>
-            <remarks>
-            	<note type="inheritinfo">
-            The implementers should not treat the cardinality-related mismatches as errors, and are not
-            expected to throw exceptions in those cases.
-            For instance, if the import requests exactly one export and the provider has no matching exports or more than one,
-            it should return an empty <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.Export"/>.
-            </note>
-            </remarks>
+            <param name="info">
+                The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the 
+                <see cref="T:System.ComponentModel.Composition.CompositionException"/>.
+            </param>
+            <param name="context">
+                The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the 
+                source or destination.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="info"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.Runtime.Serialization.SerializationException">
+                <paramref name="info"/> is missing a required value.
+            </exception>
+            <exception cref="T:System.InvalidCastException">
+                <paramref name="info"/> contains a value that cannot be cast to the correct type.
+            </exception>
         </member>
-        <member name="P:System.ComponentModel.Composition.CompositionContainer.Providers">
+        <member name="M:System.ComponentModel.Composition.CompositionException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
             <summary>
-            Gets the providers.
+                Gets the serialization data of the exception.
             </summary>
-            <value>The providers.</value>
+            <param name="info">
+                The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartException"/>.
+            </param>
+            <param name="context">
+                The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the 
+                source or destination.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="info"/> is <see langword="null"/>.
+            </exception>
         </member>
-        <member name="P:System.ComponentModel.Composition.CompositionContainer.IsComposing">
+        <member name="P:System.ComponentModel.Composition.CompositionException.Errors">
             <summary>
-                Gets a value indicating whether the container is currently composing.
+                Gets the errors that are the cause of the exception.
             </summary>
             <value>
-                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> is currently 
-                composing due to a call to <see cref="M:System.ComponentModel.Composition.CompositionContainer.Compose"/>, otherwise, <see langword="false"/>.
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.ComponentModel.Composition.CompositionError"/> objects
+                representing the errors that are the cause of the 
+                <see cref="T:System.ComponentModel.Composition.CompositionException"/>.
             </value>
         </member>
-        <member name="P:System.ComponentModel.Composition.CompositionContainer.IsCompositionPending">
+        <member name="P:System.ComponentModel.Composition.CompositionException.Message">
             <summary>
-                Gets a value indicating whether the container has a composition pending.
+                Gets a message that describes the exception.
             </summary>
             <value>
-                <see langword="true"/> if the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/> currently has
-                exported objects and <see cref="T:System.ComponentModel.Composition.ComposablePart"/> objects that have not yet been
-                composed by a call to <see cref="M:System.ComponentModel.Composition.CompositionContainer.Compose"/>; otherwise, <see langword="false"/>.
+                A <see cref="T:System.String"/> containing a message that describes the 
+                <see cref="T:System.ComponentModel.Composition.CompositionException"/>.
             </value>
         </member>
-        <member name="E:System.ComponentModel.Composition.CompositionContainer.ExportsChanged">
-            <summary>
-                Occurs when the exports in the <see cref="T:System.ComponentModel.Composition.ExportProvider"/> change.
-            </summary>
-            <remarks>
-                The <see cref="E:System.ComponentModel.Composition.CompositionContainer.ExportsChanged"/> event passes an <see cref="T:System.ComponentModel.Composition.ExportsChangedEventArgs"/>
-                which provides a list of contract names for the exports that have changed. An export
-                is considered to have changed if it has been added, removed, or updated in the 
-                <see cref="T:System.ComponentModel.Composition.AggregatingExportProvider"/>.
-            </remarks>
-        </member>
         <member name="T:System.ComponentModel.Composition.CompositionOptionsAttribute">
             <summary>
                 Specifies discovery and creation options for an attributed part.
@@ -4233,25 +4588,81 @@
             <value>
                 One of the <see cref="P:System.ComponentModel.Composition.CompositionOptionsAttribute.CreationPolicy"/> values indicating the creation policy of the 
                 attributed part. The default is 
-                <see cref="F:System.ComponentModel.Composition.CreationPolicy.Singleton"/>.
+                <see cref="F:System.ComponentModel.Composition.CreationPolicy.Shared"/>.
             </value>
         </member>
-        <member name="P:System.ComponentModel.Composition.CompositionOptionsAttribute.DiscoveryMode">
+        <member name="P:System.ComponentModel.Composition.CompositionOptionsAttribute.CatalogDiscoveryMode">
             <summary>
                 Gets or sets a value indicating when an attributed part will be discovered.
             </summary>
             <value>
-                One of the <see cref="P:System.ComponentModel.Composition.CompositionOptionsAttribute.DiscoveryMode"/> values indicating when the attributed part 
-                will be discovered by a <see cref="T:System.ComponentModel.Composition.ComposablePartCatalog"/>. The default is 
-                <see cref="F:System.ComponentModel.Composition.DiscoveryMode.Auto"/>.
+                One of the <see cref="P:System.ComponentModel.Composition.CompositionOptionsAttribute.CatalogDiscoveryMode"/> values indicating when the attributed part 
+                will be discovered by a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog"/>. The default is 
+                <see cref="F:System.ComponentModel.Composition.CatalogDiscoveryMode.Auto"/>.
             </value>
         </member>
-        <member name="M:System.ComponentModel.Composition.CompositionServices.IsAtMostOne(System.ComponentModel.Composition.ImportCardinality)">
+        <member name="T:System.ComponentModel.Composition.CompositionServiceExtensions">
             <summary>
-                Returns a value indicating whether cardinality is 
-                <see cref="F:System.ComponentModel.Composition.ImportCardinality.ZeroOrOne"/> or 
-                <see cref="F:System.ComponentModel.Composition.ImportCardinality.ExactlyOne"/>.
+                Provides extension methods for the <see cref="T:System.ComponentModel.Composition.ICompositionService"/> interface.
+            </summary>
+        </member>
+        <member name="M:System.ComponentModel.Composition.CompositionServiceExtensions.SatisfyImports(System.ComponentModel.Composition.ICompositionService,System.ComponentModel.Composition.Primitives.ComposablePart)">
+            <summary>
+                Satisfies the imports of the specified composable part.
+            </summary>
+            <param name="part">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> to set the imports and register for recomposition.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="part"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.CompositionException">
+                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> will
+                contain a collection of errors that occurred.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> has been disposed of.
+            </exception>
+        </member>
+        <member name="M:System.ComponentModel.Composition.CompositionServiceExtensions.SatisfyImports(System.ComponentModel.Composition.ICompositionService,System.Object,System.Boolean)">
+            <summary>
+                Satisfies the imports of the specified attributed composable part and registers it for 
+                recomposition if requested.
+            </summary>
+            <param name="part">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> to set the imports and register for recomposition.
+            </param>
+            <param name="registerForRecomposition">
+                Indicates whether the part will keep recomposing after the initial import satisfaction
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="attributedPart"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.CompositionException">
+                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> will
+                contain a collection of errors that occurred.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.ICompositionService"/> has been disposed of.
+            </exception>
+        </member>
+        <member name="M:System.ComponentModel.Composition.CompositionServiceExtensions.SatisfyImports(System.ComponentModel.Composition.ICompositionService,System.Object)">
+            <summary>
+                Satisfies the imports of the specified attributed composable part.
             </summary>
+            <param name="part">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> to set the imports and register for recomposition.
+            </param>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="attributedPart"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ComponentModel.Composition.CompositionException">
+                An error occurred during composition. <see cref="P:System.ComponentModel.Composition.CompositionException.Errors"/> will
+                contain a collection of errors that occurred.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.ICompositionService"/> has been disposed of.
+            </exception>
         </member>
         <member name="T:System.ComponentModel.Composition.ContractTypeAttribute">
             <summary>
@@ -4266,7 +4677,7 @@
             <remarks>
                 <para>
                     The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on the type that is 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on the type that is 
                     marked with this attribute.
                 </para>
                 <para>
@@ -4287,7 +4698,7 @@
             <remarks>
                 <para>
                     The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on the type that is 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on the type that is 
                     marked with this attribute.
                 </para>
                 <para>
@@ -4314,6 +4725,32 @@
                 <see cref="T:System.Type"/>. The default value is <see langword="null"/>.
             </value>
         </member>
+        <member name="T:System.ComponentModel.Composition.CreationPolicy">
+            <summary>
+            Option placed on a type that controls when the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> creates 
+            a new instance of a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/>.
+            </summary>
+        </member>
+        <member name="F:System.ComponentModel.Composition.CreationPolicy.Any">
+            <summary>
+            Let the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> choose the most appropriate <see cref="T:System.ComponentModel.Composition.CreationPolicy"/>
+            for the part given the current context. This is the default <see cref="T:System.ComponentModel.Composition.CreationPolicy"/>, with
+            the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> choosing <see cref="F:System.ComponentModel.Composition.CreationPolicy.Shared"/> by default
+            unless the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> or importer requests <see cref="F:System.ComponentModel.Composition.CreationPolicy.NonShared"/>.
+            </summary>
+        </member>
+        <member name="F:System.ComponentModel.Composition.CreationPolicy.Shared">
+            <summary>
+            A single shared instance of the associated <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> will be created
+            by the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> and shared by all requestors.
+            </summary>
+        </member>
+        <member name="F:System.ComponentModel.Composition.CreationPolicy.NonShared">
+            <summary>
+            A new non-shared instance of the associated <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart"/> will be created
+            by the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/> for every requestor.
+            </summary>
+        </member>
         <member name="T:System.ComponentModel.Composition.ExportAttribute">
             <summary>
                 Specifies that a type, property, field, or method provides a particular export.
@@ -4327,7 +4764,7 @@
             <remarks>
                 <para>
                     The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on the type of the 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on the type of the 
                     property or field, or the type itself, that is marked with this attribute. 
                     Methods must specify a contract name or type using either 
                     <see cref="M:System.ComponentModel.Composition.ExportAttribute.#ctor(System.Type)"/> or <see cref="M:System.ComponentModel.Composition.ExportAttribute.#ctor(System.String)"/>.
@@ -4352,12 +4789,12 @@
             <remarks>
                 <para>
                     The contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on 
                     <paramref name="contractType"/>.
                 </para>
                 <para>
                     The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on the type of the 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on the type of the 
                     property or field, or the type itself, that is marked with this attribute. 
                     Methods must specify a contract name or type using either 
                     <see cref="M:System.ComponentModel.Composition.ExportAttribute.#ctor(System.Type)"/> or <see cref="M:System.ComponentModel.Composition.ExportAttribute.#ctor(System.String)"/>.
@@ -4381,7 +4818,7 @@
             <remarks>
                 <para>
                     The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on the property or field 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on the property or field 
                     type, or the type itself that this is marked with this attribute. Methods must 
                     specify a contract name or type using either <see cref="M:System.ComponentModel.Composition.ExportAttribute.#ctor(System.Type)"/>
                     or <see cref="M:System.ComponentModel.Composition.ExportAttribute.#ctor(System.String)"/>.
@@ -4451,7 +4888,7 @@
             <remarks>
                 <para>
                     The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on the property, field, 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on the property, field, 
                     or parameter type that this is marked with this attribute.
                 </para>
                 <para>
@@ -4472,12 +4909,12 @@
             <remarks>
                 <para>
                     The contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on 
                     <paramref name="contractType"/>.
                 </para>
                 <para>
                     The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on the property, field, 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on the property, field, 
                     or parameter type that is marked with this attribute.
                 </para>
                 <para>
@@ -4498,7 +4935,7 @@
             <remarks>
                 <para>
                     The default contract name is the result of calling 
-                    <see cref="M:System.ComponentModel.Composition.CompositionServices.GetContractName(System.Type)"/> on the property, field, 
+                    <see cref="M:System.ComponentModel.Composition.Hosting.CompositionServices.GetContractName(System.Type)"/> on the property, field, 
                     or parameter type that is marked with this attribute.
                 </para>
                 <para>
@@ -4525,7 +4962,7 @@
             <value>
                 <see langword="true"/> if the property, field or parameter will be set 
                 its type's default value when an export with the <see cref="P:System.ComponentModel.Composition.ImportAttribute.ContractName"/> is not 
-                present in the <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>; otherwise, <see langword="false"/>. 
+                present in the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>; otherwise, <see langword="false"/>. 
                 The default value is <see langword="false"/>.
             </value>
             <remarks>
@@ -4547,10 +4984,26 @@
             <value>
                 <see langword="true"/> if the property or field allows for recomposition when exports
                 that provide the same <see cref="P:System.ComponentModel.Composition.ImportAttribute.ContractName"/> are added or removed from the 
-                <see cref="T:System.ComponentModel.Composition.CompositionContainer"/>; otherwise, <see langword="false"/>. 
+                <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer"/>; otherwise, <see langword="false"/>. 
                 The default value is <see langword="false"/>.
             </value>
         </member>
+        <member name="P:System.ComponentModel.Composition.ImportAttribute.RequiredCreationPolicy">
+            <summary>
+                Gets or sets a value indicating that the importer requires a specific 
+                <see cref="T:System.ComponentModel.Composition.CreationPolicy"/> for the exports used to satisfy this import. T
+            </summary>
+            <value>
+                <see cref="F:System.ComponentModel.Composition.CreationPolicy.Any"/> - default value, used if the importer doesn't 
+                    require a specific <see cref="T:System.ComponentModel.Composition.CreationPolicy"/>.
+            
+                <see cref="F:System.ComponentModel.Composition.CreationPolicy.Shared"/> - Requires that all exports used should be shared
+                    by everyone in the container.
+            
+                <see cref="F:System.ComponentModel.Composition.CreationPolicy.NonShared"/> - Requires that all exports used should be 
+                    non-shared in a container and thus everyone gets their own instance.
+            </value>
+        </member>
         <member name="T:System.ComponentModel.Composition.MetadataAttributeAttribute">
             <summary>
                 Specifies that an attribute can be used to provide metadata for a type, property, field,
@@ -4562,23 +5015,66 @@
                 Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.MetadataAttributeAttribute"/> class.
             </summary>
         </member>
-        <member name="M:System.ComponentModel.Composition.DirectoryPartCatalog.CacheCatalog(System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter)">
+        <member name="M:System.ComponentModel.Composition.Hosting.DirectoryCatalog.GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)">
             <summary>
-               Caches the catalog using the specified cache writer
+                Returns the export definitions that match the constraint defined by the specified definition.
             </summary>
-            <param name="writer">
-               The <see cref="T:System.ComponentModel.Composition.Caching.ComposablePartCatalogCacheWriter"/> to use to cache the catalog.
+            <param name="definition">
+                The <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition"/> that defines the conditions of the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> objects to return.
             </param>
-            <returns></returns>
+            <returns>
+                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:System.TempTuple`2"/> containing the 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ExportDefinition"/> objects and their associated 
+                <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> for objects that match the constraint defined 
+                by <paramref name="definition"/>.
+            </returns>
+            <exception cref="T:System.ArgumentNullException">
+                <paramref name="definition"/> is <see langword="null"/>.
+            </exception>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.DirectoryCatalog"/> has been disposed of.
+            </exception>
         </member>
-        <member name="E:System.ComponentModel.Composition.DirectoryPartCatalog.Changed">
+        <member name="M:System.ComponentModel.Composition.Hosting.DirectoryCatalog.ToString">
             <summary>
-            Notify when the contents of the Catalog has changed.
+                Returns a string representation of the directory catalog.
+            </summary>
+            <returns>
+                A <see cref="T:System.String"/> containing the string representation of the <see cref="T:System.ComponentModel.Composition.Hosting.DirectoryCatalog"/>.
+            </returns>
+        </member>
+        <member name="P:System.ComponentModel.Composition.Hosting.DirectoryCatalog.Parts">
+            <summary>
+                Gets the part definitions of the directory catalog.
+            </summary>
+            <value>
+                A <see cref="T:System.Linq.IQueryable`1"/> of <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartDefinition"/> objects of the 
+                <see cref="T:System.ComponentModel.Composition.Hosting.DirectoryCatalog"/>.
+            </value>
+            <exception cref="T:System.ObjectDisposedException">
+                The <see cref="T:System.ComponentModel.Composition.Hosting.DirectoryCatalog"/> has been disposed of.
+            </exception>
+        </member>
+        <member name="P:System.ComponentModel.Composition.Hosting.DirectoryCatalog.System#ComponentModel#Composition#Primitives#ICompositionElement#DisplayName">
+            <summary>
+                Gets the display name of the directory catalog.
             </summary>
+            <value>
+                A <see cref="T:System.String"/> containing a human-readable display name of the <see cref="T:System.ComponentModel.Composition.Hosting.DirectoryCatalog"/>.
+            </value>
+        </member>
+        <member name="P:System.ComponentModel.Composition.Hosting.DirectoryCatalog.System#ComponentModel#Composition#Primitives#ICompositionElement#Origin">
+            <summary>
+                Gets the composition element from which the directory catalog originated.
+            </summary>
+            <value>
+                This property always returns <see langword="null"/>.
+            </value>
         </member>
-        <member name="E:System.ComponentModel.Composition.DirectoryPartCatalog.Changing">
+        <member name="E:System.ComponentModel.Composition.Hosting.DirectoryCatalog.Changed">
             <summary>
-            Notify when the contents of the Catalog is about to change.
+            Notify when the contents of the Catalog has changed.
             </summary>
         </member>
     </members>
trunk/src/MyMoney/Presentation/Presenters/Navigation/action_tasks_presenter.cs
@@ -12,9 +12,9 @@ namespace MyMoney.Presentation.Presenters.Navigation
     public class action_tasks_presenter : IActionTasksPresenter
     {
         readonly IActionsTaskView view;
-        readonly IRegistry<IActionTaskPresenter> registry;
+        readonly IRegistry<IActionTaskPaneFactory> registry;
 
-        public action_tasks_presenter(IActionsTaskView view, IRegistry<IActionTaskPresenter> registry)
+        public action_tasks_presenter(IActionsTaskView view, IRegistry<IActionTaskPaneFactory> registry)
         {
             this.view = view;
             this.registry = registry;
@@ -23,7 +23,7 @@ namespace MyMoney.Presentation.Presenters.Navigation
         public void run()
         {
             view.display();
-            registry.all().each(x => x.run(view));
+            registry.all().each(x => view.add(x.create()));
         }
     }
 }
\ No newline at end of file
trunk/src/MyMoney/Presentation/Presenters/Navigation/AddBillingTaskPane.cs
@@ -0,0 +1,37 @@
+using MyMoney.Presentation.Presenters.billing;
+using MyMoney.Presentation.Presenters.Commands;
+using MyMoney.Presentation.Resources;
+using XPExplorerBar;
+
+namespace MyMoney.Presentation.Presenters.Navigation
+{
+    public class AddBillingTaskPane : IActionTaskPaneFactory
+    {
+        readonly IRunPresenterCommand command;
+
+        public AddBillingTaskPane(IRunPresenterCommand command)
+        {
+            this.command = command;
+        }
+
+        public Expando create()
+        {
+            return Build
+                .task_pane()
+                .named("Billing")
+                .with_item(
+                Build.task_pane_item()
+                    .named("Add Bill Payments")
+                    .represented_by_image(ApplicationImages.ReadingABill)
+                    .when_clicked_execute(() => command.execute<IAddBillPaymentPresenter>())
+                )
+                .with_item(
+                Build.task_pane_item()
+                    .named("View All Bills")
+                    .represented_by_image(ApplicationImages.ReadingABill)
+                    .when_clicked_execute(() => command.execute<IViewAllBillsPresenter>())
+                )
+                .build();
+        }
+    }
+}
\ No newline at end of file
trunk/src/MyMoney/Presentation/Presenters/Navigation/AddCompanyTaskPane.cs
@@ -0,0 +1,28 @@
+using MyMoney.Presentation.Presenters.Commands;
+using MyMoney.Presentation.Resources;
+using XPExplorerBar;
+
+namespace MyMoney.Presentation.Presenters.Navigation
+{
+    public class AddCompanyTaskPane : IActionTaskPaneFactory
+    {
+        readonly IRunPresenterCommand command;
+
+        public AddCompanyTaskPane(IRunPresenterCommand command)
+        {
+            this.command = command;
+        }
+
+        public Expando create()
+        {
+            return Build.task_pane()
+                .named("Company")
+                .with_item(
+                Build.task_pane_item()
+                    .named("Add Company")
+                    .represented_by_image(ApplicationImages.ReadingABill)
+                    .when_clicked_execute(() => command.execute<IAddCompanyPresenter>()))
+                .build();
+        }
+    }
+}
\ No newline at end of file
trunk/src/MyMoney/Presentation/Presenters/Navigation/AddIncomeTaskPane.cs
@@ -0,0 +1,36 @@
+using MyMoney.Presentation.Presenters.Commands;
+using MyMoney.Presentation.Presenters.income;
+using MyMoney.Presentation.Resources;
+using XPExplorerBar;
+
+namespace MyMoney.Presentation.Presenters.Navigation
+{
+    public class AddIncomeTaskPane : IActionTaskPaneFactory
+    {
+        readonly IRunPresenterCommand command;
+
+        public AddIncomeTaskPane(IRunPresenterCommand command)
+        {
+            this.command = command;
+        }
+
+        public Expando create()
+        {
+            return Build.task_pane()
+                .named("Income")
+                .with_item(
+                Build.task_pane_item()
+                    .named("Add New Income")
+                    .represented_by_image(ApplicationImages.ReadingABill)
+                    .when_clicked_execute(() => command.execute<IAddNewIncomePresenter>())
+                )
+                .with_item(
+                Build.task_pane_item()
+                    .named("View All Income")
+                    .represented_by_image(ApplicationImages.ReadingABill)
+                    .when_clicked_execute(() => command.execute<IViewIncomeHistoryPresenter>())
+                )
+                .build();
+        }
+    }
+}
\ No newline at end of file
trunk/src/MyMoney/Presentation/Presenters/Navigation/AddReportingTaskPane.cs
@@ -0,0 +1,30 @@
+using MyMoney.Presentation.Presenters.Commands;
+using MyMoney.Presentation.Presenters.reporting;
+using MyMoney.Presentation.Resources;
+using XPExplorerBar;
+
+namespace MyMoney.Presentation.Presenters.Navigation
+{
+    public class AddReportingTaskPane : IActionTaskPaneFactory
+    {
+        readonly IRunPresenterCommand command;
+
+        public AddReportingTaskPane(IRunPresenterCommand command)
+        {
+            this.command = command;
+        }
+
+        public Expando create()
+        {
+            return Build.task_pane()
+                .named("Reports")
+                .with_item(
+                Build.task_pane_item()
+                    .named("View All Bills")
+                    .represented_by_image(ApplicationImages.ReadingABill)
+                    .when_clicked_execute(() => command.execute<IViewAllBillsReportPresenter>())
+                )
+                .build();
+        }
+    }
+}
\ No newline at end of file
trunk/src/MyMoney/Presentation/Presenters/Navigation/Build.cs
@@ -2,12 +2,12 @@ namespace MyMoney.Presentation.Presenters.Navigation
 {
     public class Build
     {
-        public static IExpandoBuilder Expando()
+        public static IExpandoBuilder task_pane()
         {
             return new ExpandoBuilder();
         }
 
-        public static IExpandoItemBuilder ExpandoItem()
+        public static IExpandoItemBuilder task_pane_item()
         {
             return new ExpandoItemBuilder();
         }
trunk/src/MyMoney/Presentation/Presenters/Navigation/company_task_presenter.cs
@@ -1,34 +0,0 @@
-using MyMoney.Presentation.Presenters.Commands;
-using MyMoney.Presentation.Resources;
-using MyMoney.Presentation.Views.Navigation;
-using XPExplorerBar;
-
-namespace MyMoney.Presentation.Presenters.Navigation
-{
-    public class company_task_presenter : IActionTaskPresenter
-    {
-        readonly IRunPresenterCommand command;
-
-        public company_task_presenter(IRunPresenterCommand command)
-        {
-            this.command = command;
-        }
-
-        public void run(IActionsTaskView view)
-        {
-            view.Add(create_expando());
-        }
-
-        Expando create_expando()
-        {
-            return Build.Expando()
-                .Named("Company")
-                .WithItem(
-                Build.ExpandoItem()
-                    .Named("Add Company")
-                    .RepresentedByImage(ApplicationImages.ReadingABill)
-                    .WhenClickedExecute(() => command.execute<IAddCompanyPresenter>()))
-                .Build();
-        }
-    }
-}
\ No newline at end of file
trunk/src/MyMoney/Presentation/Presenters/Navigation/ExpandoBuilder.cs
@@ -2,17 +2,17 @@ using System.Collections.Generic;
 using System.ComponentModel;
 using System.Drawing;
 using System.Windows.Forms;
+using MyMoney.Utility.Core;
 using MyMoney.Utility.Extensions;
 using XPExplorerBar;
 using Padding=System.Windows.Forms.Padding;
 
 namespace MyMoney.Presentation.Presenters.Navigation
 {
-    public interface IExpandoBuilder
+    public interface IExpandoBuilder : IBuilder<Expando>
     {
-        IExpandoBuilder Named(string name);
-        IExpandoBuilder WithItem(IExpandoItemBuilder builder);
-        Expando Build();
+        IExpandoBuilder named(string name);
+        IExpandoBuilder with_item(IExpandoItemBuilder builder);
     }
 
     public class ExpandoBuilder : IExpandoBuilder
@@ -20,19 +20,19 @@ namespace MyMoney.Presentation.Presenters.Navigation
         readonly IList<IExpandoItemBuilder> builders = new List<IExpandoItemBuilder>();
         string the_name = "";
 
-        public IExpandoBuilder Named(string name)
+        public IExpandoBuilder named(string name)
         {
             the_name = name;
             return this;
         }
 
-        public IExpandoBuilder WithItem(IExpandoItemBuilder builder)
+        public IExpandoBuilder with_item(IExpandoItemBuilder builder)
         {
             builders.Add(builder);
             return this;
         }
 
-        public Expando Build()
+        public Expando build()
         {
             var pane = new Expando {};
             ((ISupportInitialize) (pane)).BeginInit();
@@ -61,7 +61,7 @@ namespace MyMoney.Presentation.Presenters.Navigation
         TaskItem[] create_items()
         {
             var items = new List<TaskItem>();
-            builders.each(x => items.Add(x.Build()));
+            builders.each(x => items.Add(x.build()));
             return items.ToArray();
         }
     }
trunk/src/MyMoney/Presentation/Presenters/Navigation/ExpandoItemBuilder.cs
@@ -2,16 +2,16 @@ using System;
 using System.Drawing;
 using System.Windows.Forms;
 using MyMoney.Presentation.Resources;
+using MyMoney.Utility.Core;
 using XPExplorerBar;
 
 namespace MyMoney.Presentation.Presenters.Navigation
 {
-    public interface IExpandoItemBuilder
+    public interface IExpandoItemBuilder : IBuilder<TaskItem>
     {
-        IExpandoItemBuilder Named(string name);
-        IExpandoItemBuilder RepresentedByImage(ApplicationImage image);
-        IExpandoItemBuilder WhenClickedExecute(Action action);
-        TaskItem Build();
+        IExpandoItemBuilder named(string name);
+        IExpandoItemBuilder represented_by_image(ApplicationImage image);
+        IExpandoItemBuilder when_clicked_execute(Action action);
     }
 
     public class ExpandoItemBuilder : IExpandoItemBuilder
@@ -20,25 +20,25 @@ namespace MyMoney.Presentation.Presenters.Navigation
         ApplicationImage the_image;
         Action the_action = () => { };
 
-        public IExpandoItemBuilder Named(string name)
+        public IExpandoItemBuilder named(string name)
         {
             the_name = name;
             return this;
         }
 
-        public IExpandoItemBuilder RepresentedByImage(ApplicationImage image)
+        public IExpandoItemBuilder represented_by_image(ApplicationImage image)
         {
             the_image = image;
             return this;
         }
 
-        public IExpandoItemBuilder WhenClickedExecute(Action action)
+        public IExpandoItemBuilder when_clicked_execute(Action action)
         {
             the_action = action;
             return this;
         }
 
-        public TaskItem Build()
+        public TaskItem build()
         {
             var item = new TaskItem
                            {
trunk/src/MyMoney/Presentation/Presenters/Navigation/IActionTaskPaneFactory.cs
@@ -0,0 +1,9 @@
+using MyMoney.Utility.Core;
+using XPExplorerBar;
+
+namespace MyMoney.Presentation.Presenters.Navigation
+{
+    public interface IActionTaskPaneFactory : IFactory<Expando>
+    {
+    }
+}
\ No newline at end of file
trunk/src/MyMoney/Presentation/Presenters/Navigation/IActionTaskPresenter.cs
@@ -1,9 +0,0 @@
-using MyMoney.Presentation.Views.Navigation;
-using MyMoney.Utility.Core;
-
-namespace MyMoney.Presentation.Presenters.Navigation
-{
-    public interface IActionTaskPresenter : IParameterizedCommand<IActionsTaskView>
-    {
-    }
-}
\ No newline at end of file
trunk/src/MyMoney/Presentation/Views/Navigation/actions_task_list.cs
@@ -1,8 +1,4 @@
-using MyMoney.Presentation.Presenters;
-using MyMoney.Presentation.Presenters.billing;
-using MyMoney.Presentation.Presenters.Commands;
-using MyMoney.Presentation.Presenters.income;
-using MyMoney.Presentation.Presenters.reporting;
+using MyMoney.Presentation.Presenters.Commands;
 using MyMoney.Presentation.Resources;
 using MyMoney.Presentation.Views.core;
 using MyMoney.Presentation.Views.Shell;
@@ -14,21 +10,19 @@ namespace MyMoney.Presentation.Views.Navigation
     public interface IActionsTaskView : IDockedContentView
     {
         void display();
-        void Add(Expando expando);
+        void add(Expando expando);
     }
 
     public partial class actions_task_list : DockContent, IActionsTaskView
     {
         readonly IShell shell;
-        readonly IRunPresenterCommand command;
 
-        public actions_task_list(IShell shell, IRunPresenterCommand command)
+        public actions_task_list(IShell shell)
         {
             InitializeComponent();
             CloseButton = false;
             CloseButtonVisible = false;
             this.shell = shell;
-            this.command = command;
 
             initialize_the_ui();
         }
@@ -41,39 +35,15 @@ namespace MyMoney.Presentation.Views.Navigation
             //ux_system_task_pane.UseCustomTheme(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "itunes.dat"));
         }
 
-        public void display()
+        public void add(Expando expando)
         {
-            ux_add_company.Text = "Add Company";
-            ux_add_company.Image = ApplicationImages.ReadingABill;
-            ux_add_company.Click += (sender, e) => command.execute<IAddCompanyPresenter>();
-
-            ux_add_bill_payment.Text = "Add Bill Payments";
-            ux_add_bill_payment.Image = ApplicationImages.ReadingABill;
-            ux_add_bill_payment.Click += (sender, e) => command.execute<IAddBillPaymentPresenter>();
-
-            ux_view_all_bill_payments.Text = "View All Bills";
-            ux_view_all_bill_payments.Image = ApplicationImages.ReadingABill;
-            ux_view_all_bill_payments.Click += (sender, e) => command.execute<IViewAllBillsPresenter>();
-
-            ux_view_all_bill_payments_report.Text = "View All Bills";
-            ux_view_all_bill_payments_report.Image = ApplicationImages.ReadingABill;
-            ux_view_all_bill_payments_report.Click += (sender, e) => command.execute<IViewAllBillsReportPresenter>();
-
-            ux_add_new_income.Text = "Add New Income";
-            ux_add_new_income.Image = ApplicationImages.ReadingABill;
-            ux_add_new_income.Click += (sender, e) => command.execute<IAddNewIncomePresenter>();
-
-            ux_view_all_income.Text = "View All Income";
-            ux_view_all_income.Image = ApplicationImages.ReadingABill;
-            ux_view_all_income.Click += (sender, e) => command.execute<IViewIncomeHistoryPresenter>();
-
-            shell.add(this);
-            DockState = DockState.DockLeft;
+            ux_system_task_pane.Expandos.Add(expando);
         }
 
-        public void Add(Expando expando)
+        public void display()
         {
-            ux_system_task_pane.Expandos.Add(expando);
+            shell.add(this);
+            DockState = DockState.DockLeft;
         }
     }
 }
\ No newline at end of file
trunk/src/MyMoney/Utility/Core/IBuilder.cs
@@ -0,0 +1,7 @@
+namespace MyMoney.Utility.Core
+{
+    public interface IBuilder<T>
+    {
+        T build();
+    }
+}
\ No newline at end of file
trunk/src/MyMoney/MyMoney.csproj
@@ -309,11 +309,14 @@
     <Compile Include="Presentation\Model\messages\new_project_opened.cs" />
     <Compile Include="Presentation\Model\messages\saved_changes_event.cs" />
     <Compile Include="Presentation\Model\messages\unsaved_changes_event.cs" />
+    <Compile Include="Presentation\Presenters\Navigation\AddBillingTaskPane.cs" />
+    <Compile Include="Presentation\Presenters\Navigation\AddIncomeTaskPane.cs" />
+    <Compile Include="Presentation\Presenters\Navigation\AddReportingTaskPane.cs" />
     <Compile Include="Presentation\Presenters\Navigation\Build.cs" />
-    <Compile Include="Presentation\Presenters\Navigation\company_task_presenter.cs" />
+    <Compile Include="Presentation\Presenters\Navigation\AddCompanyTaskPane.cs" />
     <Compile Include="Presentation\Presenters\Navigation\ExpandoBuilder.cs" />
     <Compile Include="Presentation\Presenters\Navigation\ExpandoItemBuilder.cs" />
-    <Compile Include="Presentation\Presenters\Navigation\IActionTaskPresenter.cs" />
+    <Compile Include="Presentation\Presenters\Navigation\IActionTaskPaneFactory.cs" />
     <Compile Include="Presentation\Presenters\Shell\tool_bar_presenter.cs" />
     <Compile Include="Presentation\Presenters\Navigation\action_tasks_presenter.cs" />
     <Compile Include="Presentation\Presenters\Navigation\navigation_presenter.cs" />
@@ -413,6 +416,7 @@
     <Compile Include="Utility\Core\and_specification.cs" />
     <Compile Include="Utility\Core\command.cs" />
     <Compile Include="Utility\Core\empty_command.cs" />
+    <Compile Include="Utility\Core\IBuilder.cs" />
     <Compile Include="Utility\Core\IDisposableCommand.cs" />
     <Compile Include="Utility\Core\IFactory.cs" />
     <Compile Include="Utility\Core\IParameterizedCommand.cs" />